Как получить доступ ко всем полям, которые были отфильтрованы в Django Custom Manager - PullRequest
1 голос
/ 21 июля 2010

Я пишу собственный менеджер и внедряю метод 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() 

Поэтому мой вопрос заключается в том, чтобы увидеть, есть ли лучший подход, я обеспокоеночень запутанные запросы, что я не выровнял дерево должным образом.

Есть идеи о лучших подходах?

...