如何解决表单无效时,Django不刷新站点
我目前正在开发一个网站,为此我使用了很多带有形式的模态。事实是,每次我在表单字段中输入无效信息并按提交按钮时,模式便会关闭,并且没有任何指示表明该表单无效。
我已经知道有可能发出一个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请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。