2010-11-23 205 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

相關問題