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

建议使用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 回答