В моем веб-приложении я бы хотел, чтобы пользователь мог фильтровать результаты поиска, выбирая категории на боковой панели .
Запрос данных GET в представлении извлекает список выбранных параметров и анализируется. Эти данные для фильтрации затем разделяются на списки, как показано в следующем фрагменте из Index в views.py:
class Index(View):
def get(request):
... some checks to ensure its a valid request...
if valid:
dietTypeList = request.GET.getlist('diettype[]') #['meat','vegetarian',...]
categoryList = request.GET.getlist('categories[]') #['Italian','Western',...]
....
return render(request,'results.html',context_dict)
....
Затем я хотел бы отфильтровать результаты в функции фильтра .filter()
, чтобы мои результаты относятся к любой из выбранных категорий, причем к этим категориям применен любой тип питания.
Я изучил Q вопросов, но не уверен, как в любом случае сделать следующее. Как эффективно выполнить следующее:
results = Recipe.objects.filter(Q(name__contains=searchCriteria) & Q(category=any of categoryTypeList ))