如何使用带有 Django 过滤器的 Django-Countries 中语言选择的详细名称

How to use the verbose name of a language choice in Django-Countries with Django Filter

我有这个 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

但是在前端,下拉菜单看起来像这样:

我怎样才能在那里显示完整的国家?我也不太明白为什么那里只有一个字母。有人可以澄清一下吗?

顺便说一句,我知道 get_FOO_display()

MultipleChoiceFilter 将可迭代的元组作为选择。您提到的包提供 COUNTRIES 作为字典。尝试做

from django_countries.data import COUNTRIES

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