문제

내 모델에는 필드가 있습니다.

   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