我正在寻找一种方法来显示w集合的列表作为页面中的字段(就像上载图像时显示的一样)。用户可以选择一个集合,而我可以以编程方式将图像过滤到选定的集合。我对w还是很陌生,不确定如何在代码中实现。
预先感谢您的帮助。
答案 0 :(得分:2)
因此,有两种方法可以执行此操作。第一种也是最不理想的方法是将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对答案has a link to another solution that's much more elegant than mine.的评论
答案 1 :(得分:0)
我已经按照README.md
上的说明使用wagtail-generic-chooser并使用了ag核心的Collection模型代替People来做到这一点。