Django阻止页面缓存
strong text我试图阻止缓存页面,因为我不希望用户能够重新提交已保存到数据库的表单 我在views.py中尝试了以下内容Django阻止页面缓存,django,Django,strong text我试图阻止缓存页面,因为我不希望用户能够重新提交已保存到数据库的表单 我在views.py中尝试了以下内容 class ServiceCreate(LoginRequiredMixin, CreateView): model = Service form_class = ServiceCreateForm @method_decorator(never_cache) def dispatch(self, request, *args, **
class ServiceCreate(LoginRequiredMixin, CreateView):
model = Service
form_class = ServiceCreateForm
@method_decorator(never_cache)
def dispatch(self, request, *args, **kwargs):
return super(ServiceCreate, self).dispatch(request, *args, **kwargs)
但是,这没有效果,因为当用户点击后退按钮时,整个页面会立即显示。如何防止缓存
更新
我是Django的新手,所以我认为装饰师会指示浏览器不要缓存-我不知道还有服务器缓存。你看到的与服务器缓存无关-这都是浏览器端的 最终,您不能100%保证表单不会被多次提交,因为用户会找到一种方法…,所以您必须在服务器上优雅地处理该问题。但是,您可以大大降低发生这种情况的可能性: 成功提交表单后,返回或使用快捷方式重定向浏览器。这将阻止浏览器刷新重新提交表单 在提交表格后使用。我最近遇到了一些奇怪的错误和数据不一致,结果是有人双击表单的提交按钮造成的。在第一次单击后禁用按钮解决了问题,同时在服务器端执行更多验证以识别重复提交 确保使用POST而不是GET提交表单。浏览器不太可能随意重新提交表单,我认为这也有助于防止错误提交
这听起来像是浏览器缓存的问题…搜索PRG模式。谢谢你详尽的回答。我认为你的第二个建议,禁用提交按钮将是最好的。