是否有人拥有或知道在不同页面模型之间建立多对多关系的秘诀(示例代码和/或说明)?如果我有 PersonPage 和 SitePage 模型,如何连接页面(一个人可以在多个站点工作,一个站点可以有多人在该站点工作)?
\n这是我发现的与此主题相关但不直接相关的内容\xe2\x80\x94
\nWagtail 文档:通过搜索“多对多”,唯一命中的是 taggit 模块上的部分(食谱页面)。
\nWagtail 文档:对 ParentalManyToManyField 的唯一参考是如何使用它在页面和类别之间创建 M2M 的演示(教程)
\n这篇 2015 年关于 Wagtail 中 M2M 关系的文章(它在一个 SO“答案”中被引用,与我在这里提出的问题基本相同)。尽管它没有讨论页面与页面的关系,但所提出的方法可能适合工作。我修改后的模仿因各种错误而失败,具体取决于我尝试设置 InlinePanel 调用 \xe2\x80\x94 的方式,但帖子中的示例代码以同样的方式失败,因此要么没有经过测试,要么它\' s 在 2.x 中已过时。
\n class PersonPage(Page):\n pass\n \n PersonPage.content_panels = [\n InlinePanel(\'ps_links\', label=\'PS Links\'), \n ] \n \n class PersonSitePageLink():\n spage = models.ForeignKey(\'SitePage\', on_delete=models.SET_NULL, related_name=\'sites\')\n ppage = ParentalKey(\'PersonPage\', related_name=\'ps_links\', on_delete=models.SET_NULL,)\n panels = [\n FieldPanel(\'spage\')\n ]\n\n …Run Code Online (Sandbox Code Playgroud) wagtail ×1