Mi chiedevo se esistesse un modo per utilizzare il filtro Django() sui set di query utilizzando una proprietà python generata dinamicamente utilizzando property()
. Ho first_name
e last_name
di ogni utente e voglio filtrare in base al loro nome concatenato first_name last_name
. (La ragione di questo è che quando faccio completamento automatico che cerco di vedere se la query corrisponde il nome, il cognome, o parte della concatenazione. Voglio John S
per abbinare John Smith
, per esempio.query django basata sulla proprietà dinamica()
ho creato una proprietà di name
:.
def _get_name(self):
return self.first_name + " " + self.last_name
name = property(_get_name)
In questo modo posso chiamare user.name
per ottenere il nome concatenato
Tuttavia, se provo a fare User.objects.filter(name__istartswith=query)
ottengo l'errore Cannot resolve keyword 'name' into field.
Qualche idea su come fare questo? Devo creare un altro campo nel database per memorizzare il nome completo?
Interessante, no, non puoi filtrare le proprietà, ma puoi raggruppare i campi esistenti e filtrarli dal gruppo [rispondi di seguito] (http://stackoverflow.com/a/19040011/3999748) – Persijn