Как использовать подробное название языкового выбора в странах Джанго с фильтром Джанго - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть этот фильтр Django:

from django_countries.data import COUNTRIES

owner__nationality = filters.MultipleChoiceFilter(choices=COUNTRIES, widget=Select2MultipleWidget)

Так что я догадался, что я просто использую поле исходных выборов для фильтрации по национальности (для которых я использовал Django Countries для заполнения данных). Как вы можете видеть вИсходный код здесь, импорт корректен: https://github.com/SmileyChris/django-countries/blob/master/django_countries/data.py

Однако на внешнем интерфейсе раскрывающийся список выглядит так:

enter image description here

Как я могу получить полные страны для отображения там?Я также не совсем понимаю, почему там только одна буква.Может кто-нибудь уточнить?

Кстати, я знаю о get_FOO_display ()

1 Ответ

1 голос
/ 26 апреля 2019

MultipleChoiceFilter принимает итерируемые кортежи в качестве выбора. Упомянутый вами пакет предоставляет COUNTRIES в качестве словаря. Попробуйте сделать

from django_countries.data import COUNTRIES

owner__nationality = filters.MultipleChoiceFilter(
    choices=[(k, v) for k, v in COUNTRIES.items()],
    widget=Select2MultipleWidget
)
...