category = request.GET.get('cat')
from_p = request.GET.get('from')
to_p = request.GET.get('to')
q = Q()
if category:
q |= Q(category=category)
if from_p:
q |= Q(price__gt=from_p)
if to_p:
q |= Q(price__lt=to_p)
s = Sample.objects.filter(q)
www.example.com/?cat=0&from=300&to=600
如果首先是category
- from_p
且to_p
标准不起作用。怎么解决?
它仅适用于一个标准。我需要用户设置(例如)category
和from_p
按这些标准搜索。
答案 0 :(得分:0)
<强> EDITED 强>
这是:
q_cat = Q(category=category) if category else Q()
q_from = Q(price__gt=from_p) if from_p else Q()
q_to = Q(price__lt=to_p) if to_p else Q()
q = q_cat | ( q_from & q_to )
s = Sample.objects.filter( q )