我无法弄清楚如何控制 ModelForms 的字段验证。
这是我的模型表格:
class UserForm(ModelForm):
class Meta:
model = User
fields = ('email', 'password')
这是我在模板中呈现表单的方式:
<form method="post" action="">
{% csrf_token %}
{{ userform.as_p }}
<input type="submit" value="Submit" />
</form>
这是我的看法:
def login_page(request):
if request.method == 'POST':
userform = UserForm(request.POST)
if userform.is_valid():
email = request.POST['email']
password = request.POST['password']
user = authenticate(username=email, password=password)
if user is not None:
login(request, user)
return redirect('/dashboard/')
else:
# How can I give the user feedback about authentication failute here. Right now it just reloads the form without any messages.
return render(request, "login.html", {"userform": userform})
else:
# Because .is_valid() is called, The userform will validate for email addresses and that a password input is present here.
return render(request, "login.html", {"userform": userform})
else:
userform = UserForm()
return render(request, "login.html", {"userform": userform})
从阅读文档来看,这似乎应该像向我的表单传递一些自定义属性一样简单;但由于我正在使用 ModelForm,我不确定这是否以相同的方式实现。
谁能提供有关如何最好地控制 ModelForm 字段错误的示例或提示?
谢谢!