どのように私はタプルのタプルの2番目の要素に基づいてフィルタリングすることができますか?
質問
私のモデルでは、私は、フィールドを持っています:
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