1

我正在寻找一种在 wagtail.io 中实现双向 m2m 模型的方法。

  • 一位作者可以写多篇文章
  • 一篇文章可以有多个作者。
  • 我可以在作者页面和帖子页面上设置/取消设置两个模型之间的关系
  • 作者页面上设置的关系显示在帖子页面上,反之亦然。

在 Django Admin 中,我使用普通的 filter_horizo​​ntal m2m 小部件和自定义的 through 参数解决了这个问题:

模型.py:

class Author(models.Model):
   posts = models.ManyToManyField('app.Post', blank=True, through=Post.authors.through)

class Post(models.Model):
   authors = models.ManyToManyField('app.Author', blank=True)

我偶然发现了一种至少可以使用内联实现单向关系的方法,但是我看不到如何扭转这种情况来解决我的双向问题。

这是我在鹡鸰中走了多远:

在 models.py 类 PostPage(Page) 中,我定义了一个 InlinePanel:

InlinePanel('related_agents', label="Related Agents"),

然后进一步向下自定义模型(与此博客文章相比):

class PostPageRelatedAuthorItem(Orderable):
   page = ParentalKey('PostPage', related_name='related_authors')
   # one-to-one is the same as ForeignKey with unique=True
   author = models.OneToOneField('thoughts.AgentPage')

   panels = [ 
      PageChooserPanel('author', 'app.AuthorPage'),
   ]  

是否有双向方式,如果有,您能否帮助我提供一些提示 - 非常感谢。

4

1 回答 1

0

由于围绕 django-modelcluster 的一些限制,您不能将 M2M 字段与 Wagtail 一起使用。您必须基本上专门设置“通过”模型。

您可以在这里找到您需要的所有信息http://www.tivix.com/blog/working-wagtail-i-want-my-m2ms/

于 2016-05-13T16:15:00.503 回答