2012-03-02 1 views
1

나는 다음과 같은 URL은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

0

같은 노선 여러 단계의 가입 절차를 원한다면 사용자 장고 양식 마법사가 될 수 있습니다. 이런 식으로 모든 가입 단계마다 URL을 변경할 필요가 없습니다. URL은 다음과 같이 표시됩니다

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

확인 form wizard 설명서를 참조하십시오.

관련 문제