2011-06-28 55 views
0

我有一個是通過以下URL配置呈現一個登記表 -添加其他形式的Django登記

url(r'^$', 
    register, 
    {'backend': 'registration.backends.default.UserBackend', 
    'template_name': 'index.html'}, 
    name='auth_index'), 

在模板中,我有以下幾點 -

<form method="post" action=".">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Register" /> 
</form> 

如何我會向該模板添加其他表單和上下文嗎?我想能夠擁有類似以下內容 -

<form method="post" action=".">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Register" /> 
</form> 
... 
<form action='{% url waiting_list %}' method='post'>{% csrf_token %} 
<p>Enter your email: <input type="text" name="email" value=""></p> 
<input type="submit" name="email_submit" value="Submit Email"> 
</form> 
{{message}} 

我該怎麼做? (最好在視圖內)。謝謝。

回答

1

您的模板沒問題。現在你的waiting_list網址添加到您的uelconf並實現它的觀點:

url(r'^waiting_list/$', 'myapp.views.waiting_list', {}, name='waiting_list'), 

和:

# myapp/views.py 
    def waiting_list(request): 
     ... 

因爲這不是數據的關鍵形式,我可能會使用@csrf_exempt繞過CSRF驗證,以使事情更輕鬆。如果發生錯誤,請重定向到錯誤頁面。

(順便說一句,可用性明智的,對於這個問題的一個更好的實現可能發佈與JavaScript的電子郵件。)

+0

謝謝,我已經得到了這個工作。有兩件事 - 我應該用waiting_list視圖返回一個'HttpResponseRedirect'(我正在做返回HttpResponseRedirect(reverse('auth_index'))。第二,我將如何傳遞一個消息/模板變量,例如,一個用戶輸入電子郵件後的成功消息? – David542

+0

我將重定向到靜態的「謝謝你的網頁」。請參閱https://docs.djangoproject.com/en/dev/topics/generic-views/#using-generic-views – Udi