Джанго начинает с полей

допустим, у меня есть модель Address с полем почтового индекса. Я могу искать адреса с почтовым индексом, начинающимся с «123», с помощью этой строки:

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

Теперь мне нужно сделать этот поиск «наоборот». У меня есть модель адреса с полем префикса почтового индекса _, и мне нужно получить все адреса, для которых префикс почтового индекса _является префиксом заданного кода, например «12345». Итак, если бы в моей базе данных было 2 адреса с префиксом почтового индекса _= «123» и «234», был бы возвращен только первый.

Что-то вроде:

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

Проблема в том, что это не работает. Единственное решение, которое я могу придумать, это применить фильтр к первому символу, например:

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

а затем, когда я получу результаты, создаю понимание списка, которое правильно их фильтрует,вот так:

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

Есть ли лучший способ сделать это в django? благодарю вас, Фабрицио

20
задан sfabriz 10 August 2012 в 19:58
поделиться