Обновите атрибуты Django Models.py из views.py - PullRequest
0 голосов
/ 01 декабря 2018

Я работаю над проектом системы бронирования (Django), и я хочу, чтобы количество мест уменьшалось на 1 каждый раз, когда пользователь заказывает билет. Я сделал места как переменную в классе поезда в файле моделей, и я сделал функцию, котораяуменьшает количество мест на 1 в том же файле, но я не знаю, как и где это назвать.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы должны использовать выражение 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...