Я пишу собственный менеджер и внедряю метод 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()
Поэтому мой вопрос заключается в том, чтобы увидеть, есть ли лучший подход, я обеспокоеночень запутанные запросы, что я не выровнял дерево должным образом.
Есть идеи о лучших подходах?