如何删除Django模型表单的内置错误列表?

时间:2019-03-31 16:39:18

标签: python django

我在Django中制作了一个模型表单,使用户可以创建该模型的实例。一切都好,保存一件事。 Django的内置错误列表令人讨厌。我希望这些错误在用户实际出错时显示出来。当我打开页面时,它看起来像这样 enter image description here

请帮助我如何临时删除这些错误列表,以便当用户将输入字段留空时。它会自动弹出吗?

我不知道您是否需要这些代码来解决此问题,但这是: views.py文件在这里

@login_required(login_url='/accounts/login/')
def article_create(request):
    article_form = ArticleForm(request.POST or None, request.FILES)
    if article_form.is_valid():
        instance = article_form.save(commit=False)
        instance.author = request.user
        article_form.save()
    return render(request, 'blog/article-create.html', {'form': article_form})

谢谢

1 个答案:

答案 0 :(得分:2)

您将request.POST or None惯用语-我不喜欢但不介意-用于data参数,而不用于files参数。由于您为文件传递了一个(空)字典,因此Django将您的表单作为绑定表,因此尝试对其进行验证。

如果您坚持使用此习语,则需要同时使用这两种习语:

article_form = ArticleForm(request.POST or None, request.FILES or None)

但是,实际上,它更像是Pythonic:

if request.method == 'POST':
    article_form = ArticleForm(request.POST, request.FILES)
    if article_form.is_valid():
        instance = article_form.save(commit=False)
        instance.author = request.user
        article_form.save()
        return redirect('/')
else:
    article_form = ArticleForm()
return render(request, 'blog/article-create.html', {'form': article_form})

请注意,像我上面所做的那样,在POST成功之后,您总是需要重定向。