我怎么能在一个元组的元组的第二个元素的过滤器?
题
在我的模型我有一个字段:
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])
不隶属于 StackOverflow