我在Django中制作了一个模型表单,使用户可以创建该模型的实例。一切都好,保存一件事。 Django的内置错误列表令人讨厌。我希望这些错误在用户实际出错时显示出来。当我打开页面时,它看起来像这样
请帮助我如何临时删除这些错误列表,以便当用户将输入字段留空时。它会自动弹出吗?
我不知道您是否需要这些代码来解决此问题,但这是: 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})
谢谢
答案 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成功之后,您总是需要重定向。