问题描述
我目前正在开发一个网站,为此我使用了很多带有形式的模态。事实是,每次我在表单字段中输入无效信息并按提交按钮时,模式便会关闭,并且没有任何指示表明该表单无效。
我已经知道有可能发出一个ajax请求,该请求将表单数据发送到另一个视图,然后该视图用一个JSONResponse响应,该JSONResponse包含可以显示的错误(如本文中所示:https://realpython.com/django-and-ajax-form-submissions/ )。那会行得通,但那样做,我将失去Django表单的所有好处。因为我必须以JSON形式提交表单数据,所以不能使用form.is_valid之类的功能。
所以我的问题是:当提交无效表单并显示错误而不必通过JSON发送数据时,是否可以不刷新网站?
解决方法
提交HTML表单时,浏览器会将您导航到您在该表单的action
属性中指定的URL。没有导航到action
URL,就无法实现HTML表单提交。
因此,您唯一的选择是AJAX请求。
因为我必须以JSON形式提交表单数据,所以我无法使用form.is_valid之类的功能。
那是不对的,您在后端调用form.is_valid
,HTML表单和AJAX都向您的后端发送HTTP请求。