скажем, что у меня есть модель адреса с полем почтового индекса. Я могу искать адреса с почтовым индексом, начинающимся с "123" с помощью этой строки:
Address.objects.filter(postcode__startswith="123")
Теперь мне нужно сделать этот поиск "по-другому". У меня есть модель адреса с полем postcode_prefix, и мне нужно получить все адреса, для которых postcode_prefix является префиксом заданного кода, например "12345". Так что если в моем db у меня было 2 адреса с postcode_prefix = "123" и "234", будет возвращен только первый.
Что-то вроде:
Address.objects.filter("12345".startswith(postcode_prefix))
Проблема в том, что это не работает. Единственное решение, которое я могу придумать, - это выполнить фильтр на первом char, например:
Address.objects.filter(postcode_prefix__startswith="12345"[0])
а затем, когда я получу результаты, сделайте понимание списка, которое их правильно фильтрует, например:
results = [r for r in results if "12345".startswith(r.postcode_prefix)]
Есть ли лучший способ сделать это в django? Спасибо, Фабрицио