Me preguntaba si había una forma de usar el filtro de Django() en los conjuntos de consultas utilizando una propiedad de python generada dinámicamente usando property()
. Tengo first_name
y last_name
de cada usuario, y quiero filtrar en función de su nombre concatenado first_name last_name
. (La razón detrás de esto es que cuando hago autocompletar que busco para ver si la consulta coincide con el nombre, apellido, o parte de la concatenación. Quiero John S
para que coincida con John Smith
, por ejemplo.consulta de django en función de la propiedad dinámica()
creé una propiedad de name
:.
def _get_name(self):
return self.first_name + " " + self.last_name
name = property(_get_name)
de esta manera puedo llamar user.name
para obtener el nombre concatenado
Sin embargo, si trato de hacer User.objects.filter(name__istartswith=query)
me sale el error Cannot resolve keyword 'name' into field.
¿Alguna idea sobre cómo hacer esto? ¿Tengo que crear otro campo en la base de datos para almacenar el nombre completo?
Interesante, no puede filtrar en las propiedades, pero puede agrupar los campos existentes y filtrar por el grupo [respuesta a continuación] (http://stackoverflow.com/a/19040011/3999748) – Persijn