2012-03-21 52 views
3

我试图从上下文处理器中获取当前应用程序名称(包含当前视图的应用程序),因为我的所有应用程序都有自己的Webdoor模型,但它们都具有相同的属性(有些值不同)。来自Webdoor的值在每个页面上都使用,所以我想在自定义上下文处理器中使用它,以便比在每个视图上调用它更容易。 不仅它,而且我可以将它用于其他类似的任务。 一旦我已经知道模型名称,我只需要应用程序使用get_model方法调用它。如何从上下文处理器获取当前应用程序名称?

任何人有任何想法如何做到这一点?

谢谢!

+0

你是什么意思“当前应用程序名称”?你想要做什么的应用程序的名称?或者目前有什么作用? – jpic 2012-03-21 14:55:54

+0

这是包含当前视图的应用程序。 – 2012-03-21 14:57:45

回答

4

确定当前视图的好地方是process_view() middleware method,这也恰好是添加请求变量的好地方。例如: - 如果view_func是testapp.views.some_view

class CurrentViewApplicationName(object): 
    def process_view(self, request, view_func, view_args, view_kwargs): 
     request.current_app = view_func.__module__.split('.')[0] 

将设置request.current_app到testapp。这可能不是防弹的,一些应用程序可以在子模块等中看到视图......但是这应该是一个很好的开端,可以根据您的项目特定需求进行调整。

+0

你的回答比我想要的要好。向我介绍工具我不知道他们是如此简单的创建! ; d – 2012-03-21 16:41:26

相关问题