Python 具有递归结构时的多域错误。如何解决?
我在具有递归结构的模型中有下表(一个页面可以有子页面) 我想创建另一个与此表有很多关系的表Python 具有递归结构时的多域错误。如何解决?,python,django,django-models,many-to-many,Python,Django,Django Models,Many To Many,我在具有递归结构的模型中有下表(一个页面可以有子页面) 我想创建另一个与此表有很多关系的表 class UserMessage(models.Model): name = models.CharField("Nom", max_length=100) page = models.ManyToManyField(DynamicPage) 一个用户消息可以显示在多个页面上,一个页面可以显示多个消息 当我添加新的UserMessage时,由于以下外键约束,我有一个错误 ALT
class UserMessage(models.Model):
name = models.CharField("Nom", max_length=100)
page = models.ManyToManyField(DynamicPage)
一个用户消息可以显示在多个页面上,一个页面可以显示多个消息
当我添加新的UserMessage时,由于以下外键约束,我有一个错误
ALTER TABLE `website_dynamicpage` ADD CONSTRAINT `parent_id_refs_id_29c58e1b` FOREIGN KEY (`parent_id`) REFERENCES `website_dynamicpage` (`id`);
我认为问题的原因是约束设置在DynamicPage的父字段上,而不是其id上
顶级动态页面没有父页面,但可以显示UserMessage
因此,我希望与页面id建立多个关系,而不是与页面父级建立多个关系
在Django文档中,我看不到如何说ManyToMay位于UserMessage id和DynamicPage id之间,而不是DynamicPage父级之间
怎么做?可能吗
手动重新创建SQL约束是可能的解决方案吗
提前感谢(假设我正确理解了问题;)
试试这个:
class DynamicPage(models.Model):
#...
other = models.ManyToManyField("self")
使用可选的symmetric
关键字参数(默认为True
)
重申你的问题,我很难理解;)您的意图是创建关系
UserMessage
多对多DynamicPage
,对吗?您显示的SQL约束与ForeignKey
相关,所以我不明白。谢谢您的回答。我试着更好地解释。有时用外语解释事情并不那么容易:)
class DynamicPage(models.Model):
#...
other = models.ManyToManyField("self")