在我的模型我有一个字段:

   country = models.CharField(_('Country'), max_length=2, choices=COUNTRIES)

如果国家是这样的元组的元组:

COUNTRIES = (
    ('AF', _('Afghanistan')),

...等

现在我想筛选模型的实例,由国家名称。

此:

   i = MyModel.objects.filter(country__iexact=query)

只让我通过国家代码进行过滤。

我怎样才能按国家名称进行筛选?

有帮助吗?

解决方案

可以不是由国家名称直接滤波器(该choices仅在UI中使用,而不是在数据库中)。

如果你的全名作为输入,查找在COUNTRIES元组的元组的代码。例如:

# ... initialize a lookup dictionary
country_to_id_dict = dict((t[1], t[0]) for t in COUNTRIES)

# ... use the dictionary in the query
i = MyModel.objects.filter(country__exact=country_to_id_dict[query])
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top