Так что есть несколько способов сделать это.Первый и, вероятно, наименее идеальный способ - зарегистрировать Collection как сниппет и использовать SnippetChooserPanel
.
"""Register Collection snippet."""
from wagtail.snippets.models import register_snippet
from wagtail.core.models import Collection
# Register Collections as Snippets so we can use the SnippetChooserPanel to select a collection
register_snippet(Collection)
. И тогда в вашей модели вы можете использовать SnippetChooserPanel, вот так (обратите внимание, этоэто весь непроверенный код)
from django.db import models
from wagtail.core.models import Page
class CustomPage(Page):
# ...
collection = models.ForeignKey(
'wagtailcore.Collection',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)
content_panels = Page.content_panels + [
# ...
SnippetChooserPanel('collection'),
]
@ gasman Комментарий к ответу содержит ссылку на другое решение, гораздо более элегантное, чем у меня.