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