【问题标题】:Django Form.Errors message is not showing and not printing in consoleDjango Form.Errors 消息未显示且未在控制台中打印
【发布时间】:2021-11-25 15:43:47
【问题描述】:

我现在正在学习 django 表单。我无法将网站中的错误输出显示为文本消息,即使我设置了自己的错误消息,它也仅显示为带有默认错误消息的弹出消息。另外,我的控制台在之后没有打印任何东西

if form.is_valid():

这是我的views.py文件:

def forms(request):
    if request.method == 'POST':
        form = Forms(request.POST)

        if form.is_valid():
            print("hello")
            form.save()
            print(form.cleaned_data)
            return HttpResponseRedirect('/thank_you')
    else: 
        form = Forms()
    

    return render(request, "form/index.html", {
        'form': form
    })

def thank_you(request):
    return render(request, 'form/thankyou.html')

这是 html 文件

<html lang='en'>
<head>
    <meta charset="UTF-8">
</head>
<body>
  <form action="/thank-you" method="POST">
    {% csrf_token %}
    {{ form.name.label_tag}} <br>
    {{form.name}} <br>
    {{form.name.errors}}
    <button type="submit">Send</button> 

  </form>

【问题讨论】:

  • 它只显示为弹出消息”,我认为您谈论的是浏览器在那里进行了一些验证。尝试将novalidate 属性添加到您的表单标签中:&lt;form action="/thank-you" method="POST" novalidate&gt; 是否符合您的预期?

标签: html django forms


【解决方案1】:

在您的模板中尝试此操作以显示错误消息:

{% if form.errors %}
    {% for field in form %}
        {% for error in field.errors %}
            <strong>{{ error|escape }}</strong>
        {% endfor %}
    {% endfor %}
{% endif %}

Here 是自定义错误消息的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2022-01-16
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2015-11-09
    相关资源
    最近更新 更多