'state' 对于 Django 应用程序意味着什么?

What does 'state' mean regarding Django apps?

我是 django(和一般编程)的新手,我正在尝试创建 Reviewboard 扩展。 此扩展程序将在一列中显示用户的全名。代码大部分工作,但是我不明白这个方法中的状态变量是做什么的。

    # renders column to display
    def render_data(self, state, review_request):
        # returns user's fullname (or username if fullname does not exist)
        user = review_request.submitter
        return user.get_full_name() or user.username

此代码有效,但是当我删除 'state' 参数时,该字段显示 'None' 而不是用户的全名。我尝试在线查找,但找不到该变量作用的解释。

我什至没有在我的方法中调用它,但它仍然影响结果。

我不喜欢有我不完全理解的代码(更难调试),所以有人可以解释一下吗?

我觉得是什么意思

我认为状态是指对象的实例。在这种情况下,将呈现全名的 review_request。如果没有这个实例,就无法将一个审核请求与所有审核请求区分开来。我什至不调用它,我仍然不知道它如何影响代码。

编辑:C14L 是对的,我将 state 重命名为 foobar,我的代码仍然正常运行。我在调用函数的 djblets/django 代码的 source 中挖掘了更多内容。

rendered_data = self.render_data(state, obj)

在您发布的代码中,根本没有使用 state。但是,如果您删除它,那么 review_request 将成为第二个参数。但是调用此函数时,期望 review_request 成为第三个参数。您不能只更改参数的数量或顺序,因为调用者不知道这些。尝试将 state 重命名为 foobar,该功能仍将像以前一样工作。

你可以把 state 留在那儿,那很好。 function/method 的接口不应该仅仅因为函数或方法内部(不再)使用其中一个参数而改变。