python - 如何删除 Django 模型表单的内置错误列表?
问题描述
我在 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})
谢谢
解决方案
您使用request.POST or None
成语 - 我不喜欢,但没关系 - 用于 data 参数,但不用于 files 参数。由于您为文件传递了一个(空)dict,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 后重定向,就像我在上面所做的那样。
推荐阅读
- javascript - Vue.js 导入图片
- delphi - 与 SSL DLL 相关的问题
- numbers - Julia - significance of f0 after a number
- django - Django 复杂查询:组合输出
- regex - 删除 Pandas 中字符串列中的 Dash/Dots 并将其替换为 Null
- python - 查找与另一个列表对应的元素的索引
- php - PHP:如何从 phpspreadsheet 中的每一行获取第一个单元格值
- jupyter-notebook - 有没有办法在 Google-Colaboratory 中使用 nbextensions 配置器?
- node.js - Nodejs:Date().toLocaleString() 格式在 Node 9 和 10 之间发生了变化;影响 Jest 快照
- linux - 在 docker exec 命令中使用“*”