[英][Django]django.db.utils.IntegrityError
my app named mainsite 我的应用名为mainsite
I have the table class named Weather in models.py 我在models.py中有一个名为Weather的表类
class Weather(models.Model):
tpr = models.CharField(max_length=5)
wet = models.CharField(max_length=5)
ur = models.CharField(max_length=5)
li = models.CharField(max_length=5)
observe_time = models.DateTimeField(default=None)
I don't want my observe_time
set any deafult value 我不想我的observe_time
设置任何默认值
So I set to None . 所以我设置为None。
I have made migrations. 我进行了迁移。
when I made migrate 当我进行迁移时
Then the traceback happen: 然后发生回溯:
File "manage.py", line 22, in execute_from_command_line(sys.argv) 在execute_from_command_line(sys.argv)中的文件“ manage.py”,第22行
File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\core\\management__init__.py", 文件“ C:\\ Users \\ User \\ Anaconda3 \\ lib \\ site-packages \\ django \\ core \\ management__init __。py”,
line 354, in execute_from_command_line 第354行,在execute_from_command_line中
utility.execute() File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\core\\management\\__init__.py",
line 346, in execute 执行中的第346行
self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\core\\management\\base.py",
line 394, in run_from_argv 第394行,位于run_from_argv中
self.execute(*args, **cmd_options) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\core\\management\\base.py",
line 445, in execute 第445行,在执行中
output = self.handle(*args, **options) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\core\\management\\commands\\migrate.py",
line 222, in handle 线222,在手柄中
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial) File
"C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\migrations\\executor.py", “C:\\用户\\用户\\ Anaconda3 \\ LIB \\站点包\\ Django的\\ DB \\迁移\\ executor.py”
line 110, in migrate 第110行,正在迁移
self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial) File
"C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\migrations\\executor.py", “C:\\用户\\用户\\ Anaconda3 \\ LIB \\站点包\\ Django的\\ DB \\迁移\\ executor.py”
line 148, in apply_migration 第148行,位于apply_migration中
state = migration.apply(state, schema_editor) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\migrations\\migration.py",
line 115, in apply 第115行,适用
operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File
"C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\migrations\\operations\\fields.py", “C:\\用户\\用户\\ Anaconda3 \\ LIB \\站点包\\ Django的\\ DB \\迁移\\ \\操作fields.py”
line 62, in database_forwards 第62行,在database_forwards中
field, File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\sqlite3\\schema.py",
line 179, in add_field 第179行,位于add_field中
self._remake_table(model, create_fields=[field]) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\sqlite3\\schema.py",
line 147, in _remake_table _remake_table中的第147行
self.quote_name(model._meta.db_table), File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\base\\schema.py",
line 111, in execute 执行中的第111行
cursor.execute(sql, params) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\utils.py",
line 79, in execute 第79行,执行
return super(CursorDebugWrapper, self).execute(sql, params) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\utils.py",
line 64, in execute 执行中的第64行
return self.cursor.execute(sql, params) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\utils.py", line
98, in exit 98,在出口
six.reraise(dj_exc_type, dj_exc_value, traceback) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\utils\\six.py", line
685, in reraise 685,加价中
raise value.with_traceback(tb) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\utils.py",
line 64, in execute 执行中的第64行
return self.cursor.execute(sql, params) File "C:\\Users\\User\\Anaconda3\\lib\\site-packages\\django\\db\\backends\\sqlite3\\base.py",
line 318, in execute 执行中的第318行
return Database.Cursor.execute(self, query, params) django.db.utils.IntegrityError: NOT NULL constraint failed:
mainsite_weather__new.observe_time mainsite_weather__new.observe_time
I don't know what caused this error. 我不知道是什么原因导致此错误。
thx. 谢谢。
In order for this to work you should also make this field nullable and blankable, like this: 为了使它起作用,您还应该使该字段为可空和可空白,如下所示:
observe_time = models.DateTimeField(default=None, blank=True, null=True)
or omit default=None
completely, like this: 或完全省略default=None
,如下所示:
observe_time = models.DateTimeField(blank=True, null=True)
Also, after that, don't forget to delete the previous migration file and run makemigrations
and migrate
again. 此外,此后,不要忘记删除以前的迁移文件并运行makemigrations
并再次migrate
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.