2015-06-16 6 views
0

Я пытаюсь войти перегруженные звонки QuerySetAPI Скажите, что я зову Example.objects.filter(id=1) и я следующий код в Models.pyОпределите, какой метод QuerySetAPI называется

objects = MyManager() 

и MyManager I have-

class MyManager(Manager): 
    def get_query_set(self): 
     # logging stuff I am doing 
     return super(MyManager, self).get_query_set() 

Как получить имя метода (т.е. filter здесь) в MyManager->get_query_set()? Есть ли способ сделать это без использования inspect stack()?

ответ

0

filter происходит от объекта QuerySet, который get_query_set от менеджера возвращается. Функция фильтра есть: https://github.com/django/django/blob/04e8d890aec8e996d568565555164a27a6a76057/django/db/models/query.py#L778

+0

Я понимаю, как я вставляю его в 'get_query_set'? – malhar

+0

Вы должны перевернуть собственный класс QuerySet, который регистрирует вызовы для фильтрации, например. Затем вы можете создать менеджера из этого QuerySet, как описано здесь: https://docs.djangoproject.com/en/1.8/topics/db/managers/#from-queryset – Linovia

Смежные вопросы