튜플 튜플에서 두 번째 요소를 어떻게 필터링하려면?
문제
내 모델에는 필드가 있습니다.
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