在django中i在以下型号上使用 manage.py makemigrations
和 manage.py migrate
.py文件:
class Family(models.Model):
comment1 = models.CharField(max_length=80)
#comment2 = models.CharField(max_length=80)
成功初始化后,我将 models.py.py 更改为(我只是删除新的模型字段,这基本上是其他模型字段的副本):
class Family(models.Model):
comment1 = models.CharField(max_length=80)
comment2 = models.CharField(max_length=80)
现在,当我尝试再次使用makemigrations
时,我会得到以下错误:
您正在尝试不用 默认我们无法做到这一点(数据库需要一些填充的东西 现有行)。
请选择一个修复程序:
1)立即提供一次性默认值 (将在所有现有行上设置为此列的零值)
2)退出,让我在型号中添加默认值。py选择一个选项:
为什么我首先不在Intialization时会遇到此错误?
其他是正确的。您应该为该字段设置默认值。但是您可以解决这个问题。但这不是一个好方法...只有您别无选择。
1.评论所有表
2.运行makemigrations
和migrate
3.删除您的桌子
4.2。再次运行makemigrations
和migrate
image1=models.ImageField(upload_to='app/image12',help_text="hi", null=True)
也就是说,在现场设置null= True'
。
在存储数据库后更改模型时,它会发生。
如果您想在没有默认的情况下使其不可使其无效。创建迁移文件时,必须为同一字段提供值。那就是为什么它要求该选项。python manage.py makemigrations在终端中键入" 1",然后为先前保存的行(如果有)为字段提供值。
让我知道这是否有帮助。
我遇到了同样的问题,就我而言:
专注于警报:
...对家庭的不可用的字段"评论" ...
- 模型:家庭
- 字段:评论
只需在模型家族的字段评论中添加一个attr:
default=''
您可以添加以下内容:default=None
或default="something"
或add null=True
,blank=True
。