[英]Django models filter by the human-readable value
是否可以通过人类可读的值过滤模型?
#models.py
class World(models.Model):
COUNTRY_CHOICES = (('SP', 'Spain'), ('FR', 'France'))
country=models.CharField(max_length=20, choices=COUNTRY_CHOICES, default=None)
province=models.CharField(max_length=20, default=None)
#managers.py
def get_provinces(self):
provinces = self.filter(country='SP')
return provinces
这将返回其国家为西班牙的省份,但是如何使用“西班牙”而不是“ SP”进行过滤呢?
这不可能。 国家名称未存储在数据库中的任何位置。 因此,您必须从显示名称中获取国家/地区值并对其进行过滤:
countries = dict((v, k) for k, v in World.COUNTRY_CHOICES)
provinces = self.filter(country=countries['Spain'])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.