property()
を使用して動的に生成されたpythonプロパティを使用してクエリセットでDjangoのfilter()を使用する方法があるのだろうかと思っていました。私はすべてのユーザーのfirst_name
とlast_name
を持っており、連結名first_name last_name
に基づいてフィルタリングしたいと思います。 (この背後にある理由は、私が自動補完を行うとき、私はクエリは名、姓、または連結の一部と一致するかどうかを確認するために検索することです。私は、例えば、John Smith
に一致するようにJohn S
をしたい。動的プロパティに基づくdjangoクエリ
私はのプロパティを作成しましたname
:私は連結名を取得するためにuser.name
を呼び出すことができます
def _get_name(self):
return self.first_name + " " + self.last_name
name = property(_get_name)
この方法
しかし、私はUser.objects.filter(name__istartswith=query)
を行うにしようと、私はエラーCannot resolve keyword 'name' into field.
これを行う方法に関するご意見はありますか?フルネームを格納するためにデータベースに別のフィールドを作成する必要がありますか?
興味深いことに、プロパティでフィルターをかけることはできませんが、既存のフィールドをグループ化し、グループによってフィルタリングすることができます。[回答を下に](http://stackoverflow.com/a/19040011/3999748) – Persijn