-1
我正在使用django(1.5 with mysql)select_for_update方法从一个模型中获取数据并根据请求将这些数据提供给用户,但是当两个用户同时请求时,它会为两个用户返回相同的数据,请参阅示例代码下面如何使用django queryset get方法处理并发?
models.py
class SaveAccessCode(models.Model):
code = models.CharField(max_length=10)
class AccessCode(models.Model):
code = models.CharField(max_length=10)
state = models.CharField(max_length=10, default='OPEN')
views.py
def view(request, code):
# for example code = 234567
acccess_code = AccessCode.objects.select_for_update().filter(
code=code, state='OPEN')
acccess_code.delete()
SaveAccessCode.objects.create(code=code)
return
并发请求将产生SaveAccessCode具有相同的代码的两个记录,请指导我如何处理这种情况更好的方式
为什么它不能为两个用户提供相同的数据?你为什么不想要它,它应该怎么做呢?你怎么称呼这种方法? –