Django2.2:没有js确认表单的最佳方法

问题描述 投票:0回答:2

我想实现这个算法:

  1. 用户提交模型表单
  2. 如果clean()方法引发错误,我不想再显示表单。我希望用户看到一个带有“确认”和“取消”按钮的确认页面。

例如,

具有相同名称的书已存在。

你想用这个名字再保存一本书吗?

是/取消

在这种情况下,最好的方法是什么?

python django
2个回答
1
投票

在视图中调用is_valid()时,将调用clean()方法。所以在你看来,你应该有类似的东西:

if not my_form.is_valid():
    return render(request, 'confirmation_page_template.html', {})

0
投票

如果你正在使用class-based views,你应该根据form_invalid覆盖方法docs

form_invalid(形式)的

呈现响应,将无效表单作为上下文提供。

通常,此方法返回到显示表单错误的相同视图,您可以使用任何其他视图,如果您愿意,使用失败表单可以让您有机会向用户提供错误。

但是......

您应该考虑提供确认无效表单的选项,您不应该让用户选择确认错误数据。

© www.soinside.com 2019 - 2024. All rights reserved.