2

以前の質問で、マネージャーの方法は次のようになりました。

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

manager メソッド内のself.get_query_set().get(key=key)代わりに使用することが提案されました。self.get(key=key)前者の方がはるかに冗長に見えるので、これの理由は何だろうと思っていましたか?

4

1 に答える 1

2

著者は冗長であることが好きだと思います。違いはありません。Managerクラスのgetメソッドは次のように定義されます。

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

django / db / models/manager.pyで自分で確認できます

于 2012-02-23T15:04:49.720 に答える