防止在Django中提交多个表单

发布于 2021-01-29 17:01:40

我正在寻找一种通用的方法来防止提交多个表单。我发现这种方法看起来很有希望。而我不想在所有视图中都包含此代码段。使用请求处理器或中间件可能更容易做到这一点。

有什么最佳实践建议吗?

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    客户端,从JavaScript开始。您永远无法信任客户,但这只是一个开始。

    onclick="this.disabled=true,this.form.submit();
    

    在服务器端,您可以“向数据库中插入一些内容,即校验和”。如果将其记录插入数据库中,则可以model.objects.get_or_create()在数据库级别强制使用唯一性,则应使用unique_together。

    最后 :HTTPRedirect是最好的,当用户处理付款时,我使用的方法是将HTTPRedirect()发出到Thank you /
    conformation页面。这样,刷新表单就不会重新提交,并且如果他们返回并尝试再次提交表单(不刷新表单),那么Django跨站点请求伪造(CSRF)将会失败,完美!



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看