Я получил следующий вид:Джанго модель фильтра пустой строкой
def search_events(request):
term = request.GET.get('term', '')
adminDivision = request.GET.get('adminDivision', '')
events = Event.objects.filter(event_name__icontains=term, city__admin1=adminDivision)
data= serializers.serialize('json', events);
return HttpResponse(data, content_type='application/json')
Он может получить 2 параметра из запроса, срок и adminDivision, а затем делает поиск по БД.
Как это работает, так это то, что когда один из них пуст, термин или adminDivision, то я не получаю никаких результатов, так как все объекты имеют некоторое значение для этих полей.
Что я хочу, если один или даже оба фильтра пустые, тогда не применяйте этот фильтр.
Пример, , если у меня есть эти объекты:
- [event_name = 'Foo', adminDivision = '1']
- [event_name = 'бар', adminDivision = '2']
- [event_name = 'Foo бар', adminDivision = '3']
с term=foo
(нет значения для adminDivision) в данный момент, I'am не получая никаких результатов, но я хочу его вернуть первый и третий.
Поскольку оба значения пустые, я также не получаю никаких результатов, и я хотел бы иметь их все.
Есть ли элегантный способ достичь этого?
Спасибо!
Сделайте себе одолжение и использовать формы для обработки данных GET и POST запросов вместо доступа 'request.GET' непосредственно на ваш взгляд. – patrys
Можете ли вы дать более подробную информацию или предоставить ссылку на примеры? Я вызываю этот метод из запроса ajax, поэтому я не уверен, как использовать формы здесь. Во всяком случае, я начинаю с django, поэтому любая обратная связь приветствуется. – mario595