最好的Django练习,过滤ORM还是python?

时间:2015-07-02 12:50:30

标签: python django

需要将多个过滤器应用于QuerySet。我应该多次查询数据库,还是在Python

中进行排序/过滤
data = Data.objects.all()   
for f in somefilters:
    tempdata = data.filter(*f.args)
    # do work

or

data = list(Data.objects.all())
for f in somefilters:
    tempdata = filter(data, key=...)
    #do work

1 个答案:

答案 0 :(得分:4)

除非你有一些荒谬的过滤器,否则你应该只使用Q objects。这就是他们的目的。

from django.db.models import Q

q = Q()
for filter in filters:
    q |= Q(*f.args)
data = Data.objects.filter(q)

# Do things with `data`