2011-03-11 19 views
1

我正在使用django註冊應用程序來執行註冊。註冊後(無論成功與否),我想回到註冊應用程序將重定向的任何頁面,我想將登錄表單傳遞給該模板。註冊後將表單傳遞給模板

事情是這樣的:

def register(request): 
    registered = reg_views.register(request, backend='registration.backends.default.DefaultBackend', template_name='zzz/index.html') 
    login_form = AuthenticationForm() 
    return render_to_response(registered, { 'login_form': login_form }) 

,然後在模板中有ussual:

{{ login_form.as_p }} 

這裏就是我想實現: 我想利用註冊應用程序的功能。但是,在註冊成功後,我需要能夠在頁面上顯示登錄表單。這個登錄表單應該從視圖中傳遞(DRY原則)。

感謝, 馬加什

回答

0

urls.py

urlpatterns = patterns('', 
    (r'^accounts/', include('external.registration.urls')), 
) 

新urls.py

urlpatterns = patterns('', 
    (r'^accounts/register', 'point.to.new.view'), 
    (r'^accounts/', include('external.registration.urls')), 
) 

有了這一套,你可以在某處複製登記您的看法代碼從註冊應用程序,並修改它,只要你喜歡,沒有噸o自行修改應用程序。註冊視圖非常簡單,所以你在進行一些更改時不會有任何問題。

0

您不需要複製register視圖的任何代碼django-registration

說,你想在你的應用程序命名的處理認證功能accounts

這正好accounts/views.py

def registration_complete(request): 
    login_form = AuthenticationForm() 
    return render_to_response("registration_complete.html", {"login_form": login_form}) 

accounts/urls.py

url(r'^registration_complete/', 'accounts.views.registration_complete', name='accounts_registration_complete'), 

在模板registration_complete.html

{{login_form.as_p}} 

現在您已完成registration_complete設置。

registerdjango-registration的視圖需要success_url,它在成功註冊後重定向。

提供此success_url作爲我們在帳戶中創建的網址。

你的urls.py:

urlpatterns = patterns('', 
    (r'^registration/register/$', 'registration.register', {'backend': 'registration.backends.default.DefaultBackend', 'success_url': 'accounts_registration_complete'}), 
    (r'^registration/', include('registration.urls')), 
) 

現在註冊後,用戶將被重定向到包含登錄表單的頁面。