2010-11-23 25 views
9

我正在使用Django 1.3 alpha创建一个包含两个应用程序的项目。我使用1.3是因为基于类的观点。对于这两个应用程序,我有一组通用的基本视图类,它们由应用程序中的实际视图继承。在基类中,有没有办法找出视图被“调用”的应用程序?例如。我可以使用URL获取“当前”应用程序吗?如何在Django中获取当前应用程序

回答

7

如果您是从通用的清单和详细意见认为Django提供您可以访问self.model来访问该视图显示有关信息模型继承,否则你可能会使用django's resolve()resolve(self.request.path)

你也可以让自己的View子类,您与您所选择的关键字拨打:

# views.py 
from django.views.generic.base import View 
class MyView(View): 
    app_name = None 

# urls.py 
from django.conf.urls.defaults import * 
from some_app.views import MyView 

urlpatterns = patterns('', 
    (r'^myview/', MyView.as_view(app_name='app_name')), 
) 

那么你应该能够通过self.app_name访问它。

+1

我不知道从resolve()返回的对象包含app_name属性。我更改了我的顶级项目url-config文件以在包含应用程序特定的url-configs的包含调用中使用app_name参数,然后使用resolve()从那里获取app_name。谢谢! – 2010-11-23 14:30:11

相关问题