我正在尝试制作一个类似网站的博客。
这是我的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(content)
。然后我运行了成功执行的命令 python manage.py makemigrations。之后,当我运行 python manage.py migrate 时,我得到了
IntegrityError:NOT NULL constraint failed: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",
]
为什么会出现此错误?
请您参考如下方法:
当您更改模型以添加 null=True 和 blank=True 时,您没有重新创建迁移。
您需要重新运行python manage.py makemigrations,您将进行第二次迁移
