是否可以使用带有Wagtail ParentalManyToManyField的django_select2小部件

时间:2017-11-30 10:30:29

标签: wagtail

我需要一个复杂的选择小部件,因为多选小部件中有很多选项。但我看到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"。

1 个答案:

答案 0 :(得分:1)

根据Django-Select2文档,您必须首先使用属性启动(调用)小部件。

如错误所示 - 尚未向窗口小部件提供data_urldata_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并且运行良好。