Django startswith, die auf den Feldern

sagen wir mal so, ich habe eine Adresse Modell mit einer PLZ-Gebiet. Ich kann lookup-Adressen mit PLZ beginnend mit "123" mit der Zeile:

Address.objects.filter(postcode__startswith="123")

Nun, ich brauche, um dies zu tun suchen, der "anders herum". Ich habe eine Adresse Modell mit einem postcode_prefix Feld, und ich brauche zum abrufen der Adressen, für die postcode_prefix ist ein Präfix mit einem bestimmten code, wie "12345". Also, wenn in meiner db hatte ich 2 Adressen mit postcode_prefix = "123" und "234", nur die erste würde zurückgegeben werden.

Etwas wie:

Address.objects.filter("12345".startswith(postcode_prefix)) 

Das problem ist, dass dies nicht funktioniert.
Die einzige Lösung, die ich mit oben kommen kann ist, führen Sie einen filter auf den ersten char, wie:

Address.objects.filter(postcode_prefix__startswith="12345"[0])

dann, wenn ich die Ergebnisse zu erhalten, machen Sie eine Liste Verständnis, dass die Filter richtig so:

results = [r for r in results if "12345".startswith(r.postcode_prefix)]

Gibt es einen besseren Weg, es zu tun in django?
danke,
Fabrizio

InformationsquelleAutor der Frage sfabriz | 2012-08-10

Schreibe einen Kommentar