Я ищу способ реализовать двунаправленные модели m2m в wagtail.io.wagtail: Как сделать двусторонние отношения модели страницы?
- Один автор может написать несколько сообщений и
- один пост может иметь несколько авторов.
- Я могу установить/снять связь между двумя моделями как на странице автора, так и на странице сообщений
- Ссылка, указанная на странице «Автор», отображается на странице «Почта» и наоборот.
В Django администратора Я решил это с помощью обычного filter_horizontal M2M виджет и настраиваемый с помощью параметра:
models.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)
I stumbled upon an approach that at least enables a one-way relation using inlines однако я не могу видеть, как превратить это вокруг решить мою двунаправленную проблему.
Это насколько я в трясогузки:
В models.py класса PostPage (Page) я определил InlinePanel:
InlinePanel('related_agents', label="Related Agents"),
и затем далее вниз обычая по модели (compare to this blog post):
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'),
]
есть ли двунаправленный путь, и если да, не могли бы вы помочь мне вместе с некоторыми намеками - большое спасибо заранее.
Заканчивать https://github.com/gregmuellegger/django-sortedm2m, библиотека, которая поставляет Сортируемый типа M2M поле. В администраторе Wagtail добавьте любое отсортированное поле m2m с помощью FieldPanel (не InlinePanel). Я использовал это поле с Wagtail, и он работает хорошо. См. Также этот предыдущий вопрос: http://stackoverflow.com/questions/33651722/nested-categories-inlinepanels-in-wagtail/33980133#33980133 –