Tôi đã cố gắng lọc một queryset trên một mô hình đơn giản nhưng không có may mắn cho đến nay.Django: Bộ lọc cho get_foo_display trong một Queryset
Đây là mô hình của tôi:
class Country(models.Model):
COUNTRY_CHOICES = (
('FR', _(u'France')),
('VE', _(u'Venezuela')),
)
code = models.CharField(max_length=2, choices=COUNTRY_CHOICES)
def __unicode__(self):
return self.get_code_display()
Và tôi muốn làm một cái gì đó như:
Country.objects.filter(get_code_display__icontains="france")
Country.objects.filter(code__display__icontains="france")
Country.objects.filter(get_code_display__icontains="france")
Nhưng không ai trong số những người ở trên đang làm việc. Làm cách nào để lọc trên một trường có thuộc tính choices
? Tôi nghĩ rằng các __unicode__
ghi đè sẽ giúp đỡ, nhưng tôi đoán tôi đang thiếu một cái gì đó.
Cảm ơn Daniel cho câu trả lời của bạn. – jtheoof
Chẳng phải có điều gì đó mà django có thể làm để làm cho nó dễ dàng hơn một chút. Tôi nghĩ rằng đây sẽ là một hoạt động phổ biến – Sevenearths
Lớp ['Choices'] (https://bitbucket.org/carljm/django-model-utils/src#rst-header-choices) trên ** django-model-utils * * có thể hữu ích theo cách này. – caesarsol