Python django表单视图是否显示错误
我正在使用Django框架做一个小的个人项目,在使用Django表单创建登录视图时,我遇到了一个问题 我很难在模板中显示表单错误消息,我在视图中找到了原因 这是显示错误消息的视图Python django表单视图是否显示错误,python,django,forms,Python,Django,Forms,我正在使用Django框架做一个小的个人项目,在使用Django表单创建登录视图时,我遇到了一个问题 我很难在模板中显示表单错误消息,我在视图中找到了原因 这是显示错误消息的视图 def login_view(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): form.login(request) return redi
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
form.login(request)
return redirect('/')
else:
form = LoginForm()
context = {
'form': form,
}
return render(request, 'member/login.html', context=context)
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
form.login(request)
return redirect('/')
form = LoginForm()
context = {
'form': form,
}
return render(request, 'member/login.html', context=context)
另一个未显示错误消息的视图
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
form.login(request)
return redirect('/')
else:
form = LoginForm()
context = {
'form': form,
}
return render(request, 'member/login.html', context=context)
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
form.login(request)
return redirect('/')
form = LoginForm()
context = {
'form': form,
}
return render(request, 'member/login.html', context=context)
这是我的模板
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
{{ form.username}}
{{ form.password }}
{{ form.non_field_errors }}
<button id="login-btn" class="btn btn-default" type="submit">login</button>
{%csrf_令牌%}
{{form.username}
{{form.password}}
{{form.non_field_errors}}
登录
区别在于是否在视图中使用else
短语。
我认为无论是否使用else
短语,这两种观点在逻辑上都有相同的结果。。。我不理解这两种观点的不同
有什么线索可以理解这两种观点的不同之处吗
谢谢通过在末尾定义表单,您正在覆盖POST表单。首先装入空白表格< /p>
def login_view(request):
form = LoginForm()
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
form.login(request)
return redirect('/')
context = {
'form': form,
}
return render(request, 'member/login.html', context=context)
如果我自己找到了答案,我该怎么办?如果表单有错误,is\u valid返回False并且
LoginForm(request.POST)
是有界表单。在第一个视图中,render
是使用LoginForm(request.POST)
返回的,该表单是有边界的,但在第二个视图中,使用无边界的新表单返回render。