繁体   English   中英

使用Q过滤Django数据

[英]Filter django data using Q

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_pto_p条件不起作用。 如何解决? 它仅适用于一个条件。 我需要用户根据这些条件设置(例如) categoryfrom_p搜索。

已编辑

这里是:

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 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM