disons que j'ai un modèle d'adresse avec un champ de code postal. Je peux rechercher des adresses avec code postal commençant par « 123 » avec cette ligne:Django commence par des champs
Address.objects.filter(postcode__startswith="123")
Maintenant, je dois faire cette recherche la « inverse ». J'ai un modèle d'adresse avec un champ de préfixe de code postal, et j'ai besoin de récupérer toutes les adresses pour lesquelles préfixe de code postal est un préfixe d'un code donné, comme "12345". Donc si dans ma base de données j'avais 2 adresses avec postcode_prefix = "123" et "234", seul le premier serait retourné.
Quelque chose comme:
Address.objects.filter("12345".startswith(postcode_prefix))
Le problème est que cela ne fonctionne pas. La seule solution que je peux trouver est d'effectuer un filtre sur le premier char, comme:
Address.objects.filter(postcode_prefix__startswith="12345"[0])
puis, quand je reçois les résultats, faire une compréhension de liste qui les filtre correctement, comme ceci:
results = [r for r in results if "12345".startswith(r.postcode_prefix)]
Existe-t-il une meilleure façon de le faire en django? merci, Fabrizio
La longueur du préfixe est-elle fixe ou a-t-elle une longueur variable? – cyroxx
longueur variable :) – sfabriz