допустим, у меня есть модель 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? благодарю вас, Фабрицио