【发布时间】:2015-11-09 09:11:29
【问题描述】:
所以我有一个用户可以在效果上发布 cmets,我将我的模型链接起来,无论我尝试什么,我都会不断收到不可为空的错误。每个人都说它需要 null=True。它不工作大声笑。我在这里没有看到什么?
这是官方错误:
django.db.utils.IntegrityError: NOT NULL constraint failed: effect_modules_comment__new.author_id
还有我的模特:
class Effect_module(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=255)
description = models.TextField()
html = models.TextField(default='')
css = models.TextField(default='')
js = models.TextField(default='')
up_votes = models.IntegerField()
down_votes = models.IntegerField()
effect_author = models.ManyToManyField('UserProfile')
class UserProfile(models.Model):
user = models.OneToOneField(User)
effects = models.ManyToManyField(Effect_module)
class Comment(models.Model):
comment_author = models.ForeignKey(User, null=True)
comment = models.TextField(default='No Comment Here')
effect_object = models.ForeignKey(Effect_module)
【问题讨论】:
-
尝试包含
blank=True。 -
我添加了 blank=True 并且在 makemigrations 期间,它要求我提供默认值,我应该添加什么?它不允许我输入 null=True 或任何东西,所以我只是使用了建议的 timezone.now() 大声笑,现在它仍然在迁移时说可以为空的错误
-
您是否在 Comment 模型本身之后添加了外键?你的数据库中已经有 cmets 了吗?
-
是的,我做到了...我有一种感觉,我只是把迁移和其他东西搞砸了,所以我只是清除了数据库..无论如何它只是虚拟数据
标签: django database database-design django-models models