ListSelect2 в django-autocomplete-light показывает пустой выпадающий список - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь добавить автозаполнение в поле страны на нашей модели. Автозаполнение заполняется при добавлении этого кода:

# 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>

Есть идеи, почему это не работает?

Редактировать - пара замечаний по установке:

  • с использованием Django 2.2.1
  • jquery 3.3.1
  • Я установил в установленных приложениях ebfore django.contrib.admin
...