在Rails中,如果我想设置一个“上下文”,该上下文基本上是每个视图需要的对象,例如登录用户的用户对象,或者说存储/帐户/位置对象,我如何在django框架中的每个视图上都可用?如何在django中设置“上下文”类型对象
在Rails我会做这样的事情:
class BaseController
before_action :setup_context
def setup_user
@user = # load user from db
@location = # load location for user
end
end
class HomeController < BaseController
def index
# I now can use the variables @user and @location
end
end
确实Django的这些类型,我可以加载的对象,并在我的所有视图中使用它们的事件?
它只是你需要访问的用户吗?如果是这样,那么'request.user'是要访问视图方法的对象。 –
@ShangWang不用用户,我通常这样做:context.user context.location context.account,即添加到上下文对象的所有东西。 –
这是上下文处理器的用途,请参阅http://stackoverflow.com/questions/2893724/creating-my-own-context-processor-in-django或http://stackoverflow.com/questions/2246725/ django-template-context-processors - 具体说就是Django如何在请求中添加'user'对象,并且如果你需要的不仅仅是内建的,你可以自己编写。 –