Django-python编码解释

Django-python coding explanation

什么是静态方法,我们如何解释下面的代码?

  @staticmethod
    def get_model(**kwargs):
        try:
            return Model.objects.get(**kwargs)
        except Model.DoesNotExist:
            return

A staticmethod 是一个未绑定到对象的函数,但被封装在其中(通常是为了减少外部名称空间的混乱,或消除任何导入它的需要)。它没有普通对象方法所具有的第一个 self 参数。

简而言之,也许过于简单化了:staticmethod 不需要 class 到 运行 的对象。这也意味着您不需要 self 参数。

关于代码: 此方法正在尝试 return 与 kwargs 中指定的参数匹配的模型的单个 (.get()) 实例。

示例:

kwargs = {"id":5, "is_alive": True}

Model.objects.get(**kwargs)

#is the same as

Model.objects.get(id=5, is_alive=True)

如果没有与参数匹配的模型实例,这会引发 Model.DoesNotExists 错误,因此使用 try/except。

如果出现 Model.DoesNotExists 错误,则方法 return None.