2013-02-20 50 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