2016-08-29 65 views
1

這是完整輸出執行腳本後運行的Python腳本時,這個錯誤是我目前使用Django 1.10蟒蛇2.7django.db.utils.IntegrityError:(1048,「列create_timestamp「不能爲空」)

File "/usr/bin/snort-sig-parser.py", line 213, in <module> 
    main() 
    File "/usr/bin/snort-sig-parser.py", line 205, in main 
    sig_parse(sig_line, 0,options.branch,options.revision) 
    File "/usr/bin/snort-sig-parser.py", line 173, in sig_parse 
    sig_obj.save() 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 796, in save 
    force_update=force_update, update_fields=update_fields) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 824, in save_base 
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 908, in _save_table 
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 947, in _do_insert 
    using=using, raw=raw) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method 
    return getattr(self.get_queryset(), name)(*args, **kwargs) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1043, in _insert 
    return query.get_compiler(using=using).execute_sql(return_id) 
    File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1054, in execute_sql 
    cursor.execute(sql, params) 
    File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 117, in execute 
    six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) 
    File "/usr/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 112, in execute 
    return self.cursor.execute(query, args) 
    File "/usr/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute 
    self.errorhandler(self, exc, value) 
    File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler 
    raise errorclass, errorvalue 
django.db.utils.IntegrityError: (1048, "Column 'create_timestamp' cannot be null") 

這個腳本不寫在mysql數據庫上。

這是模型上的代碼的一部分。

class SignatureUpdateSet(models.Model): 
create_timestamp = models.DateTimeField() 
branch = models.CharField(max_length=80) 
revision = models.IntegerField() 
new_signatures = models.ManyToManyField(Signature,related_name='new_signatures') 
updated_signatures = models.ManyToManyField(Signature,related_name='updated_signatures') 
deleted_signatures = models.ManyToManyField(Signature,related_name='deleted_signatures') 
#blogpost_id = models.IntegerField(blank=True, null=True) 
blogpost = models.ForeignKey(BlogPost,null=True) 

class Meta: 
    managed = False 
    db_table = 'content_app_signatureupdateset' 
+0

錯誤不能更明顯,您將保留空數據庫字段,應該不會在保存數據時。沒有你向我們展示你的模型,我們無法幫助你。 –

+0

在您的'create_timestamp'字段中,添加屬性'auto_now_add = True'https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.DateField.auto_now_add – karthikr

+0

這是模型上的完整代碼。 – ansanta

回答

0

添加auto_now=Truecreate_timestamp領域,如果你想自動添加時間戳,否則,如果要添加比當前時間戳其他任何東西,你可以添加blank=True,並添加任何定製時間戳,如果你在保存之前喜歡。

create_timestamp = DateTimeField(auto_now=True) # To save current datetime 

create_timestamp = DateTimeField(blank=True) # To save any custom date time 
相關問題