的我有以下模式:django的过滤器查询集基于__str__模型
class Subspecies(models.Model):
species = models.ForeignKey(Species)
subspecies = models.CharField(max_length=100)
def __str__(self):
return self.species.species_english+" "+self.species.species+" "+self.subspecies
def __unicode__(self):
return self.species.species_english+" "+self.species.species+" "+self.subspecies
注意,ForeignKey的字段,species
在__str__
和__unicode__
方法中。我做了这个过滤器查询:
l = list(Subspecies.objects.filter(subspecies__contains=request.GET.get('term')).order_by('subspecies')[:10])
这就是我想要什么差不多,但不完全是。我真正想要的是一个筛选器,用于检查对象的__str__
表示是否包含某组字符,而不是仅检查subspecies
字段。而不是subspecies__contains=...
它会像__str____contains=...
,但当然不起作用。
这可能吗?如果我如何做这个查询?
谢谢!
为什么不能在相关模型的三个字段上过滤? – e4c5
是的,这是我最终做的,我宁愿能够一起搜索整个短语,但单独用OR进行筛选几乎可以。 –