如何在 django-ajax_select 字段中呈现默认值

How to render default values in django-ajax_select field

我正在为我的 m2m 和外键字段使用 ajax_select,它工作正常但它没有呈现该字段的默认值,而是呈现空值 ("|")。 我没有在我的管理面板中使用 ajax_select,所以当我在管理面板中打开该表单时,字段已经具有默认值。这意味着它们在默认值中没有问题,但在 ajax_select 字段中。

它正在渲染什么:

<input type="hidden" name="colours" id="id_colours" value="|" data-ajax-select="autocompleteselectmultiple" data-plugin-options="{&quot;source&quot;: &quot;/ajax_select/ajax_lookup/colours&quot;, &quot;html&quot;: true}" data-changed="true">

我想要的是:

<input type="hidden" name="colours" id="id_colours" value="|8|" data-ajax-select="autocompleteselectmultiple" data-plugin-options="{&quot;source&quot;: &quot;/ajax_select/ajax_lookup/colours&quot;, &quot;html&quot;: true}" data-changed="true">

如果至少在 name=colour 中初始化默认值,我可以显示默认值为 White.

的帮助文本

当我搜索 ajax_select 的文档时,没有找到与之相关的内容,有谁知道如何在 ajax_select 字段中呈现默认值。

这个问题是只有我遇到还是ajax_select没有这个默认值功能?

这可以通过覆盖 get_form() 方法来实现:

def get_form(self,form_class=None):
    form = super().get_form(form_class)
    form['colours'].initial = '8'
    return form

现在默认值是手动设置的,也适用于 ajax_select