我正在尝试建立一个类似网站的博客。
这是我的models.py
:
class upload(models.Model):
username = models.CharField(max_length=100)
user = models.ForeignKey(settings.AUTH_USER_MODEL,default=1)
title = models.CharField(max_length=100)
description = models.CharField(max_length=300,default=None)
content = models.TextField(default=None,blank=True,null=True)
docFile = models.FileField(default=None,blank=True,null=True)
timestamp = models.DateTimeField(auto_now=False,auto_now_add=True)
def __unicode__(self):
return self.title
class Meta:
ordering = ["-timestamp"]
def get_absolute_url(self):
return reverse("detail",kwargs={"id":self.id})
我已将models.py
更改为包含之前不存在的TextField(内容)
。然后我运行了成功执行的命令python manage.py makemigrations
。之后当我运行python manage.py migrate
时,我正在
IntegrityError:NOT NULL约束失败:uploads_upload.content
(上传是我的应用的名称)
阅读以前对此错误的SO回答,我还在我的内容属性中添加了null=True
和blank=True
,但我仍然遇到同样的错误。
我正在通过Django表单输入详细信息。这是我的forms.py
:
class PostForm(forms.ModelForm):
#docfile = upload.docFile(required=False)
class Meta:
model = upload
fields = [
"title",
"description",
"username",
"content",
"docFile",
]
为什么我收到此错误?
答案 0 :(得分:3)
当您更改模型以添加null=True
和blank=True
时,您没有重新创建迁移。
您需要重新运行python manage.py makemigrations
,然后才能进行第二次迁移迁移