diciamo che ho un modello Indirizzo con un campo di codice postale. Posso occhiata indirizzi con codice postale che inizia con "123" con questa linea:Django inizia con i campi
Address.objects.filter(postcode__startswith="123")
Ora, ho bisogno di fare questa ricerca il "contrario". Ho un modello Address con un campo postcode_prefix e ho bisogno di recuperare tutti gli indirizzi per i quali postcode_prefix è un prefisso di un determinato codice, come "12345". Quindi se nel mio db avevo 2 indirizzi con postcode_prefix = "123" e "234", solo il primo sarebbe stato restituito.
Qualcosa di simile:
Address.objects.filter("12345".startswith(postcode_prefix))
Il problema è che questo non funziona. L'unica soluzione che posso venire con è quello di eseguire un filtro sul primo carattere, come:
Address.objects.filter(postcode_prefix__startswith="12345"[0])
e poi, quando ricevo i risultati, fare una lista di comprensione che li filtra correttamente, in questo modo:
results = [r for r in results if "12345".startswith(r.postcode_prefix)]
C'è un modo migliore per farlo in django? ringraziamento, Fabrizio
La lunghezza del prefisso è fissa o ha una lunghezza variabile? – cyroxx
lunghezza variabile :) – sfabriz