2012-03-02 62 views
1

我有以下網址Can Django可以從url推斷出一個視圖名稱?

url(r'^signup/','social.views.signup'), 
url(r'^submit_signup/','social.views.submit_signup'), 
url(r'^signup_complete/','social.views.signup_complete'), 

我能做出一個URL,它會選擇基於URL中的看法?像:

url(r'*/', 'social.views.*') 

,這樣的請求/註冊將路線 'social.views.signup'

回答

2

不知何故這樣

def test(*args,**kwargs): 
    view_name = kwargs.pop('view') 
    view = getattr(social.views,view_name) 
    return view(*args, **kwargs) 

urlpatterns = patterns('', 
    url(r'^test/(?P<view>.*)$', test), 
    ... 
) 

或類似這樣的

VIEWS_LIST = ['signup','submit_signup','signup_complete'] 
urlpatterns = patterns('social.views', 
    *[url('%s/' % view,view) for view in VIEWS_LIST] 
) 
+0

謝謝,這是有效的。我希望有一個更隱含的方式來做到這一點 – WSkinner 2012-03-02 16:06:33

0

如果您希望進行多個步驟的註冊過程,則可以使用用戶Django表單嚮導。通過這種方式,您無需爲每個註冊步驟更改網址。該URL將如下所示:

url(r'^signup/$', SignupWizard([SignupForm_1, SignupForm_2, SignupFormComplete])), 

檢查form wizard文檔。

相關問題