9
我正在使用Django 1.3 alpha创建一个包含两个应用程序的项目。我使用1.3是因为基于类的观点。对于这两个应用程序,我有一组通用的基本视图类,它们由应用程序中的实际视图继承。在基类中,有没有办法找出视图被“调用”的应用程序?例如。我可以使用URL获取“当前”应用程序吗?如何在Django中获取当前应用程序
我正在使用Django 1.3 alpha创建一个包含两个应用程序的项目。我使用1.3是因为基于类的观点。对于这两个应用程序,我有一组通用的基本视图类,它们由应用程序中的实际视图继承。在基类中,有没有办法找出视图被“调用”的应用程序?例如。我可以使用URL获取“当前”应用程序吗?如何在Django中获取当前应用程序
如果您是从通用的清单和详细意见认为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
访问它。
我不知道从resolve()返回的对象包含app_name属性。我更改了我的顶级项目url-config文件以在包含应用程序特定的url-configs的包含调用中使用app_name参数,然后使用resolve()从那里获取app_name。谢谢! – 2010-11-23 14:30:11