2013-02-20 52 views
2

我需要按價格過濾對象。如何做這樣的事情?按兩個值過濾。 Django ORM

from_price = request.GET['from'] 
to = request.GET['to'] 

o = Data.objects.filter(price > from_price and price < to ) 

回答

0

query documentation

o = Data.objects.filter(price__gt=from_price).filter(price__lt=to) 
+0

謝謝。順便說一句:我可以在一個查詢集中使用多少個.filter? – Mediopolis 2013-02-20 16:27:07

+0

儘可能多的,Django實際上不會運行查詢,直到QuerySet被評估。 – garnertb 2013-02-20 16:27:32

+0

因爲AND是默認值,所以不需要鏈接過濾器 – 2013-02-20 16:36:07

5

如果您需要包容性的價格等於您可以使用__range(間)操作:

o = Data.objects.filter(price__range=(from, to)) 

否則,只需使用__gt(大於)和__lt(小於):

o = Data.objects.filter(price__gt=from, price__lt=to)) 

對於更多操作員,請參閱Django的QuerySet API reference,特別是Field lookups部分。

0
o = Data.objects.filter(price__gt=from_price).filter(price__lt=to) 

查看關於這個documentation