2010-09-16 17 views
2

我試圖創建一個URL模式,將表現在軌道中的控制器/動作/ ID路線。到目前爲止,這裏是我有:如何在django中創建一個類似controller/action/id的url模式?

from django.conf.urls.defaults import * 
import views 

urlpatterns = ('', 
       (r'^(?P<app>\w+)/(?P<view>\w+)/$', views.select_view), 
      ) 

這裏是我的 'views.py':

def select_view(request, app, view): 
    return globals()['%s.%s', % (app, view,)]() 

到目前爲止,這沒有奏效。我在'globals'函數中得到一個關鍵的錯誤異常。我在這裏朝着正確的方向走嗎?

回答

1

嘗試是這樣的:

from django.utils.importlib import import_module 

def select_view(request, app, view): 
    mod = import_module('%s.views' % app) 
    return getattr(mod, view)(request) 

這顯然是過於簡單的例子,你做的是進口views.py從您的應用程序,看看它是否有view功能,如果它不執行該功能給請求作爲第一個論點。

查看Django如何使用get_callableautodiscover方法執行此操作的一些示例。

相關問題