Python Django的ManyToManyField IntegrityError-为什么?
我有新闻和页面模型,新闻有两个引用页面的字段: 问题是,如果我试图保存来自django admin的新闻,并且选择了一些页面用于添加章节,我会得到 IntegrityError 1452'无法添加或更新子行:外键 约束失效 site.news\u news\u添加章节, 约束新闻\u id\u参考\u id\u 479506ad 外键新闻id引用 新闻\新闻id'Python Django的ManyToManyField IntegrityError-为什么?,python,mysql,django,foreign-keys,many-to-many,Python,Mysql,Django,Foreign Keys,Many To Many,我有新闻和页面模型,新闻有两个引用页面的字段: 问题是,如果我试图保存来自django admin的新闻,并且选择了一些页面用于添加章节,我会得到 IntegrityError 1452'无法添加或更新子行:外键 约束失效 site.news\u news\u添加章节, 约束新闻\u id\u参考\u id\u 479506ad 外键新闻id引用 新闻\新闻id' 出什么问题了?对于我来说,Django 1.2、sqlite和mysql都可以正常工作。我认为你的db方案是错误的。在一个新的数据库
出什么问题了?对于我来说,Django 1.2、sqlite和mysql都可以正常工作。我认为你的db方案是错误的。在一个新的数据库上尝试它,并检查它是否工作 检查您的代码-记住类型是python内置的。你是不是在什么地方用了type而不是self.type 我使用的代码是:
# models.py
class Page(models.Model):
name = models.CharField(max_length=128)
type = models.CharField(max_length=128, default="news")
allow_add_news = models.BooleanField(default=True)
class News(models.Model):
name = models.CharField(max_length=128)
chapter = models.ForeignKey(Page,
verbose_name='Main chapter',
limit_choices_to={'type__in':['news','speech']},
related_name='news'
)
add_chapters = models.ManyToManyField(Page, blank=True, null=True,
verbose_name='Show also on',
limit_choices_to={'allow_add_news':True},
related_name="added_news"
)
# models.py
class Page(models.Model):
name = models.CharField(max_length=128)
type = models.CharField(max_length=128, default="news")
allow_add_news = models.BooleanField(default=True)
class News(models.Model):
name = models.CharField(max_length=128)
chapter = models.ForeignKey(Page,
verbose_name='Main chapter',
limit_choices_to={'type__in':['news','speech']},
related_name='news'
)
add_chapters = models.ManyToManyField(Page, blank=True, null=True,
verbose_name='Show also on',
limit_choices_to={'allow_add_news':True},
related_name="added_news"
)