我正在尝试将自动完成功能添加到out模型的国家/地区字段中。添加以下代码后,就会自动填充:
# form.py
class CustomUserChangeForm(UserChangeForm):
country = autocomplete.Select2ListCreateChoiceField(
choice_list=get_user_model().get_country_choice_list,
# widget=autocomplete.ListSelect2(url='http://127.0.0.1:8000/accounts/country-list-autocomplete',),
)
class Meta:
model = CustomUser
fields = ('first_name', 'last_name', 'company', 'country')
但是当我对小部件行进行分解时,该字段在下拉菜单中将显示为空,并且根本不像输入,而是下拉菜单。
get_user_model().get_country_choice_list
返回预期的列表:['Afghanistan', 'Åland Islands', 'Albania', 'Algeria'...
我的端点运行正常(假设格式正确):
{
"results": [
{
"id": "Afghanistan",
"text": "Afghanistan"
},
...
对于小部件,我尝试了以下选项:
widget=autocomplete.ListSelect2(url='http://127.0.0.1:8000/accounts/country-list-autocomplete',),
widget=autocomplete.ListSelect2(url='accounts/country-list-autocomplete',),
widget=autocomplete.ListSelect2(url='country-list-autocomplete',),
每项都无济于事。我在终端中没有错误,也没有生成任何请求。
取消注释小部件时,html元素如下所示:
<select name="country"
id="id_country"
data-autocomplete-light-language="en-US"
data-autocomplete-light-url="/accounts/country-list-autocomplete"
data-autocomplete-light-function="select2">
<option value="Antarctica" selected="">Antarctica</option>
</select>
有什么想法为什么不起作用?
编辑-安装注意事项