запрос django на основе динамического свойства ()

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

Есть идеи, как это сделать? Нужно ли мне создавать другое поле в базе данных для хранения полного имени?

12
задан munchybunch 21 January 2011 в 00:38
поделиться