Мне было интересно, есть ли способ использовать 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)
Я получаю сообщение об ошибке Не удается разрешить ключевое слово «имя» в поле.
Есть идеи, как это сделать? Нужно ли мне создавать другое поле в базе данных для хранения полного имени?