我需要一个复杂的选择小部件,因为多选小部件中有很多选项。但我看到HeavySelect2MultipleWidget需要视图和网址才能使用它。我认为默认情况下Wagtail不可能。
这是代码:
class Resource(Page):
authors = ParentalManyToManyField('Authors', blank=True)
content_panels = Page.content_panels + [
FieldPanel('authors', widget=forms.CheckboxSelectMultiple)
]
使用
会很不错 FieldPanel('authors', widget=HeavySelect2MultipleWidget)
但它提出了一个
你必须指定" data_view"或" data_url"。
答案 0 :(得分:1)
根据Django-Select2文档,您必须首先使用属性启动(调用)小部件。
如错误所示 - 尚未向窗口小部件提供data_url
或data_view
。
由您自己生成特定于您的用例的视图或网址。您可以override the serve method 您的网页模型提供数据并提供相应的网址格式,或者只是创建一个完整的文档here (see Heavy Components section)。
例如:
FieldPanel(
'authors',
widget=HeavySelect2MultipleWidget(
data_url='url/to/json/resonse'
)
)
HeavySelect2MultipleWidget扩展了HeavySelect2Widget - 有关详细信息,请参阅文档: http://django-select2.readthedocs.io/en/latest/django_select2.html#django_select2.forms.HeavySelect2Widget
我没有使用过这个特定的小部件,但是在类似的设置中使用了Wagtail中的Django-Select2并且运行良好。