gpt4 book ai didi

python - 即使使用 'null=True',“NOT NULL 约束失败”

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:50 25 4
gpt4 key购买 nike

运行代码时看到此错误:

NOT NULL constraint failed: blog_post.category_id

这是代码:

class Post(models.Model):
class Meta:
verbose_name='Запись'
verbose_name_plural='Записи'

author = models.ForeignKey('auth.User')
category = models.ForeignKey('Theme', default=None, blank=True, null=True)
title = models.CharField(max_length=200,verbose_name='Заголовок')
text = RichTextField(verbose_name='Текст')
created_date = models.DateTimeField(verbose_name='Время создания',default=timezone.now)
published_date = models.DateTimeField(verbose_name='Время публикации',blank=True, null=True)


def publish(self):
self.published_date = timezone.now()
self.save()
def approved_commentimages(self):
return self.comments.filter(approved_comment=True)

def __str__(self):
return self.title

class Theme(models.Model):
class Meta:
verbose_name='Категория'
verbose_name_plural='Категории'

title = models.CharField(verbose_name='Заголовок', max_length=40)
slug = models.SlugField(verbose_name='Транслит', null=True)
def __str__(self):
return self.title

我做错了什么?

最佳答案

如果您删除或修改迁移文件,则可能会发生这种情况,您的实际数据库可能与模型文件不同步,并且当您运行 makemigrations 时,它可能会说未检测到更改,即使该文件是与实际数据库不同。

您可以通过登录 MySQL 数据库并检查实际的空约束来验证这一点。您会看到它可能说它不能为空,即使您的文件说它可以。

最简单的解决方案是创建一个新数据库并运行migrate。但是,如果您的数据库中已经有大量数据,并且希望避免创建新数据并迁移数据,则可以尝试再次手动将数据库与模型同步。

关于python - 即使使用 'null=True',“NOT NULL 约束失败”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com