我正在使用 Django 1.3 开发一个 Web 应用程序,并且我有一个如下所示的处理程序:
@transaction.commit_manually
@login_required(redirect_field_name='')
def problematic_handler(request):
try:
my_record = models.MyRecords.objects.get(...)
# lots of database operations based on my_record
my_record.delete()
transaction.commit()
return ...
except:
transaction.rollback()
return ...
我的问题是用户可以在第一次调用甚至返回之前多次调用 questions_handler() ,这将生成比需要更多的数据库记录。
不幸的是,PRG 模式在这里没有帮助:/
有什么方法可以限制用户在等待第一个调用返回的同时调用处理程序两次?或者是否有可能在处理程序的第二次调用期间产生异常?(来源假设第一个尚未完成)