【发布时间】:2011-06-12 20:40:51
【问题描述】:
我想知道是否有一种方法可以使用property() 动态生成的python 属性在查询集上使用Django 的filter()。我有每个用户的first_name 和last_name,我想根据他们的串联名称first_name last_name 进行过滤。 (这背后的原因是,当我执行自动完成时,我会搜索查询是否匹配名字、姓氏或连接的一部分。例如,我希望 John S 匹配 John Smith。
我创建了name的属性:
def _get_name(self):
return self.first_name + " " + self.last_name
name = property(_get_name)
这样我可以调用user.name 来获取串联名称。
但是,如果我尝试执行 User.objects.filter(name__istartswith=query),则会收到错误 Cannot resolve keyword 'name' into field.
关于如何做到这一点的任何想法?我是否必须在数据库中创建另一个字段来存储全名?
【问题讨论】:
标签: python django django-queryset