Мне было интересно, можно ли использовать Django filter() для наборов запросов, используя динамически генерируемое свойство python, используя property()
. У меня есть 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.
Любые идеи о том, как это сделать? Нужно ли мне создавать другое поле в базе данных для хранения полного имени?