我正在使用基于类的视图。我试图每次用户创建新记录时增加一个值。
#models.py
class User(models.Model)
transaction_counter = models.PositiveIntegerField(
default=1, # +1 when new transaction created
)
class Transaction(models.Model)
number = models.PositiveIntegerField() # base on the user.transaction_counter
#views.py
class TransactionCreate(CreateView):
model = Transaction
@transaction.atomic
def form_valid(self, form):
form.instance.number = self.request.user.transaction_counter # just assign the number
self.request.user.transaction_counter= F('transaction_counter') + 1
self.request.user.save() # now we +1 for the next transaction
return super().form_valid(form)
由于我已经使用F()来增加user.transaction_counter,这是否解决了竞争条件问题?如果没有,请指导我。如果是,谢谢并爱你。