Как мне создать запрос, который фильтрует такую модель?
Моя модель:
class test(models.Model):
name = models.CharField(max_length=50)
status = models.CharField(max_length=50)
other = models.CharField(max_length=50)
Мне бы хотелось, чтобы вместо ИЛИ я фильтровал запрос по AND.Я пытался изменить |к & но это не работает.Чтобы сделать его более сложным, если у меня есть фильтры в шаблоне в форме, такие как:
Filter By Name: DropDownList of Names
Filter By Status: DropDownList of Statuses
Filter By Other: DropDownList of Others
Если я выберу name1, status1 и other1 из выпадающих списков, он должен отображать результаты:
results = test.objects.filter(name=name1,status=status1,other=other1)
Вот мой текущий запрос в views.py:
def search(request):
query = request.GET.get('q', '')
if query:
qset = (
Q(name__icontains=query) |
Q(status__icontains=query) |
Q(other__icontains=query)
)
results = test.objects.filter(qset).distinct()
else:
results = []
return render_to_response("test/search.html", {
"results": results,
"query": query
})
В данный момент он ищет только имя, статус или другое.Если я изменю |to & выполняет поиск всех из них, но при отображении результатов ничего не отображается, поскольку обработка запросов из раскрывающихся списков формы не связана.Как их связать?Как также использовать опцию ALL для раскрывающихся списков для определенного поля?
Надеюсь, я это прояснил.Спасибо.