Skip to main content
 首页 » 编程设计

python之Django 完整性错误 : Not Null constraint failed

2024年08月19日28yyy_WW

我正在尝试制作一个类似网站的博客。

这是我的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,您将进行第二次迁移