jef*_*ind 2 python django filter django-queryset
我有以下模型:
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
Run Code Online (Sandbox Code Playgroud)
请注意,species在__str__和__unicode__方法中使用了 ForeignKey 字段。我做了这个过滤器查询:
l = list(Subspecies.objects.filter(subspecies__contains=request.GET.get('term')).order_by('subspecies')[:10])
Run Code Online (Sandbox Code Playgroud)
这几乎是我想要的,除了不完全是。我真正想要的是一个过滤器,它检查__str__对象的表示是否包含某些字符组,而不仅仅是检查subspecies字段。而不是subspecies__contains=...它会是类似__str____contains=...但当然行不通的东西。
这可能吗?如果是这样,我将如何进行此查询?
谢谢!
过滤器生成要在数据库中执行的查询。
__str__在 Python 解释器中运行。你不能从 DB 调用它。所以简短的回答是“不,你不能”。例如,您必须使用filter内置函数手动过滤它。
| 归档时间: |
|
| 查看次数: |
5684 次 |
| 最近记录: |