我想知道是否有方法使用動態生成的python屬性使用property()
在查詢集上使用Django的filter()。我有每個用戶的first_name
和last_name
,我想根據它們的連接名稱first_name last_name
進行過濾。 (之所以這樣做,是因爲當我自動完成時,我搜索查詢查詢是否匹配名字,姓氏或連接的一部分,例如我想John S
匹配John Smith
,例如基於動態屬性的Django查詢()
我創建了一個屬性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.
關於如何做到這一點的任何想法?我是否必須在數據庫中創建另一個字段來存儲全名?
有趣的是,你不能過濾屬性,但你可以將現有的字段分組並按組進行過濾[下面的答案](http://stackoverflow.com/a/19040011/3999748) – Persijn 2015-04-15 12:18:41