我可以依赖基于django类的视图中的self.request吗?

时间:2018-01-17 00:00:57

标签: python django django-views

我一直看到代码依赖于使用实例变量来获取请求,例如:

class MyView():
    def get(self, request):
        return foo()

    def foo():
        request = self.request
        return bar(request)

我的问题是,我可以依赖为每个视图实例设置self.request吗?我甚至无法在文档中找到任何引用此属性的内容,而当我看到它在源代码中的某些位置设置时,我无法判断它是否始终被设置。

1 个答案:

答案 0 :(得分:1)

请求在Django的通用视图库here中设置为基本级别,其中每种其他类型的视图都来源于此。

如果你继承了某种基于Django类的视图,你应该非常安全地访问请求属性。如果您有一些AttributeError,可能是因为您忘记继承Django视图(如问题中发布的示例代码)。