从views.py更新Django Models.py的属性



我正在进行一个预订系统项目(Django(,我想让每次用户预订车票时座位减少1。我在模型文件中的火车类中将座位作为变量,并在同一文件中创建了一个将座位减少1的函数,但我不知道如何或在哪里调用它。

在减去座位数时,应该使用F表达式来避免可能的竞争条件。

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应用程序中的一个视图。

最新更新