-1
私はdjango(1.5 with mysql)のselect_for_updateメソッドを使用して1つのモデルからデータを取得し、リクエストに応じてこのデータをユーザに提供しますが、2人のユーザが同時にリクエストすると、両方のユーザに対して同じデータが返されます。 django querysetのメソッドと並行処理を処理するには?
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の二つのレコードが生成されます、このシナリオを処理する方法を私を導いてくださいより良い方法
なぜ両方のユーザーに同じデータを配信しないのですか?なぜあなたはそれを望んでいないのですか?代わりに何をすべきですか?そして、あなたはどうやってこの方法を呼んでいますか? –