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

2024-04-25 12:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

请帮助我如何删除这些错误列表暂时,以便当用户离开输入字段为空。它自己弹出?你知道吗

我不知道你是否需要这些代码来解决这个问题,但这里是: 视图.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})

谢谢


Tags: django实例instance用户模型form表单列表
1条回答
网友
1楼 · 发布于 2024-04-25 12:22:35

您使用request.POST or None习惯用法-我不喜欢,但没关系-用于data参数,但不用于files参数。由于您为文件传递了一个(空)dict,Django将您的表单作为绑定,因此尝试验证它。你知道吗

如果你坚持使用这个成语,你需要同时做到:

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

但说真的,直截了当地说出来更像是Python:

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})

注意,你总是需要重定向后,一个成功的职位,因为我已经做了上面。你知道吗

相关问题 更多 >