0
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基準が機能していない場合。修正方法は?1 つの基準に対してのみ機能します。ユーザーが(たとえば)設定し、これらの基準categoryfrom_p検索する場合に必要です。

4

1 に答える 1

0

編集済み

ここにあります:

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 )
于 2013-03-01T15:09:15.470 に答える