我一直看到代码依赖于使用实例变量来获取请求,例如:
class MyView():
def get(self, request):
return foo()
def foo():
request = self.request
return bar(request)
我的问题是,我可以依赖为每个视图实例设置self.request吗?我甚至无法在文档中找到任何引用此属性的内容,而当我看到它在源代码中的某些位置设置时,我无法判断它是否始终被设置。
答案 0 :(得分:1)
请求在Django的通用视图库here中设置为基本级别,其中每种其他类型的视图都来源于此。
如果你继承了某种基于Django类的视图,你应该非常安全地访问请求属性。如果您有一些AttributeError
,可能是因为您忘记继承Django视图(如问题中发布的示例代码)。