В менеджере Django зачем использовать self.get_query_set (). Get (kwarg = val) вместо self.get (kwarg = val)? - PullRequest
2 голосов
/ 23 февраля 2012

В предыдущем вопросе Я спросил, как выглядит метод менеджера:

def activate(key):
    try:
        profile = self.get(key=key)
    except self.model.DoesNotExist:
        return None

    if not profile.key_expired():
        # -> Activate user
        return user

    return None

Было предложено использовать self.get_query_set().get(key=key) вместо self.get(key=key) в методе менеджера.Мне было интересно, с чем это связано, так как первое кажется гораздо более многословным?

1 Ответ

2 голосов
/ 23 февраля 2012

Полагаю, автору просто нравится быть многословным.Нет никакой разницы.Метод get класса Manager определен следующим образом:

def get(self, *args, **kwargs):
    return self.get_query_set().get(*args, **kwargs)

Вы можете сами убедиться в этом в django / db / models / manager.py

...