我们的Django应用程序上有一些功能,显示一个链接来刷新我们版本控制系统的一些信息。这只是一个链接,当他们访问该URL时,将执行版本控制,获取信息,检查数据库并更新数据库等操作。Django:有没有办法阻止视图被同时调用两次?
最近我们有一个用户为一个资产点击两次'刷新'按钮。这导致URL被击两次,所以这些操作被执行了两次,最终在我们的数据库中创建了一个重复的条目。
我们需要做些什么来消除用户单击该按钮两次的可能性。我们应该从一个链接转移到一个JavaScript按钮?一旦第一次点击发生,我们是否应该在request.session中设置一些标志,然后在完成时取消设置,并且在执行刷新时始终检查该标志?这些只是两个看起来可行的想法,但我真的不知道。
为什么一个页面请求,从而导致数据库条目?我猜这不是一个POST。 –
糟糕。这是我们的第一个Web应用程序,但我应该抓住了这一点。是的 - 这是一个get。有一个列可以生成一个'视图'链接(如果我们的数据库是最新的VC)或'刷新'链接(如果我们的数据库不是最新的VC)。 'view'显然是GET,但'refresh'应该是POST。这是否意味着它是一个链接的模式将无法正常工作? – Nathan