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'
錯誤不能更明顯,您將保留空數據庫字段,應該不會在保存數據時。沒有你向我們展示你的模型,我們無法幫助你。 –
在您的'create_timestamp'字段中,添加屬性'auto_now_add = True'https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.DateField.auto_now_add – karthikr
這是模型上的完整代碼。 – ansanta