0
好麻煩,所以我有這樣的HTML表單:關於在Django用戶註冊表單
<form class="form" action="" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" value="register">Login</button>
</form>
這Django的觀點:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
return HttpResponseRedirect("/success/")
else:
form = UserCreationForm()
return render_to_response("signup.html", {'form': form,}, RequestContext(request))
這工作完全正常。但我希望能夠更多地定製原始表單。因此,爲了試圖找出如何做到這一點,我首先查看form.as_p函數的源代碼,然後嘗試手動複製它。我結束了這一點:
<form class="form" action="" method="post">
{% csrf_token %}
<p>
<label for="id_username">Username:</label>
<input id="id_username" type="text" name="username" maxlength="30">
</p>
<p>
<label for="id_password1">Password:</label>
<input type="password" name="password1" id="id_password">
</p>
<p>
<label for="id_password2">Password confirmation:</label>
<input type="password" name="password2" id="id_password2">
</p>
<button type="submit" value="register">Login</button>
</form>
但是,這是行不通的。我不明白爲什麼它沒有。如果form.as_p具有上面的輸出,那麼它理論上應該適用於視圖不應該嗎?任何幫助,將不勝感激。
理論上它應該工作的罰款。什麼是不正確的工作?你設法查看HTML嗎?當您按下提交按鈕時,您的服務器是否註冊了一個請求? – Teisman
它發出了一個成功的POST請求,但它返回到相同的頁面,因爲它應該如果表單沒有被正確提交(form.is_valid是假的)。 –
的第一個密碼字段,是'password'或'password1'。如果ID爲'然後id_password'你有一個錯字那裏,'爲=「id_password1」'應該是'爲=「id_password」'和名稱應該是'name =「密碼」' –