이렇게 모델을 필터링하는 쿼리는 어떻게 만듭니 까?Django 크로스 필터 검색?
내 모델은 다음과 같습니다
class test(models.Model):
name = models.CharField(max_length=50)
status = models.CharField(max_length=50)
other = models.CharField(max_length=50)
나는 대신에 또는 내가 AND로 쿼리를 필터링하도록하고 싶습니다. 나는 | &에 있지만 작동하지 않습니다.
results = test.objects.filter(name=name1,status=status1,other=other1)
:의 나는 상자 드롭 다운에서 이름 1, 상태 1 및 밸브 1을 선택하면
Filter By Name: DropDownList of Names
Filter By Status: DropDownList of Statuses
Filter By Other: DropDownList of Others
그것을 표시해야 결과 : I 양식 등을하는 템플릿에 필터가있는 경우, 더 복잡하게하려면
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
})
이 현재는 검색 이름, 상태 또는 기타 :
여기 views.py에서 내 현재 쿼리입니다. 내가 | &으로 모두 검색하지만 양식 드롭 다운 상자에서 쿼리 처리가 연결되지 않았기 때문에 결과를 표시 할 때 아무 것도 표시되지 않습니다. 그들을 연결하는 방법? 특정 필드에 대한 드롭 다운에 대한 ALL 옵션도 보유하고 있습니까?
나는이 사실을 분명히 밝히기를 희망합니다. 고맙습니다.
검색어는 무엇입니까? –
그리고, 어떻게'category'가 당신의 모델과 관련이 있습니까? – danihp