我正在从事一个预订系统项目(Django),我希望每次用户预订票时使座位减少1个,我将座位作为模型文件中火车类中的变量进行了设置,并且我做了一个函数在同一文件中将座位减少1,但我不知道如何或在何处调用它。
答案 0 :(得分:0)
减去席位数时,应使用F expression来避免possible race condition。
from django.db.models import F
from myproject.models import Train
train = Train.objects.get(some_train_id)
train.seats = F('seats') - 1
train.save()
这将使用数据库语义来减少值。这样,即使有人同时坐下,您也可以在数据库中设置正确的号码。
您几乎可以在任何地方拨打此电话。通常,它将是您的Django应用程序中的视图。