我正在编写自定义管理器,并实现get_query_set
方法。
基本上,我想看到某些字段被传递到查询中,认为自定义站点管理器但不想添加我想要的过滤器以确保过滤某些字段。下面是一种方法,但我想知道是否有更好的方法来获得受限制的字段
class OrgBaseModelManager(models.Manager):
def get_query_set(self):
qs = super(OrgBaseModelManager, self).get_query_set()
#Below returns a list of
constraint_lists = [c.children for c in qs.query.where.children]
import itertools
chain = itertools.chain(*constraint_lists)
constraint_fields = list(chain)
#here is where I would do my magic
return super(OrgBaseModelManager, self).get_query_set()
所以我的问题是,看看是否有更好的方法,我担心非常复杂的查询,我没有正确地平放树。
有哪些更好的方法?