Как вычесть содержимое IntegerField одной таблицы из другой в Django?
Как это работает: Когда я добавляю товар в таблицу Bouquet, в классе CompositionOfTheBouquetInline можно выбрать объект из таблицы Flower и выбрать количество цветов.
Что нужно сделать: При добавлении цветка и его количества, нужно удалить это количество цветов и сохранить его в таблице Flower, столбике stock.
Например,
- в таблице Flower есть цветок "Роза", количество на складе (stock) = 10
- в таблице Bouquet есть букет "Букет из роз", stock = 1
- в таблице CompositionOfTheBouquet выбираем цветок "Роза" в количестве 5 и сохраняем
Что должно произойти:
- stock цветка "Роза" теперь = 5
Формула: Flower.stock = Flower.stock - (CompositionOfTheBouquet.count * Bouquet.stock)
models.py
class Flower(models.Model):
title = models.CharField(verbose_name='Название', max_length=100)
stock = models.PositiveIntegerField(verbose_name='Остаток на складе', default=0)
class Bouquet(models.Model):
title = models.CharField(verbose_name='Название', max_length=150)
stock = models.PositiveIntegerField(verbose_name='Остаток на складе', default=0)
class CompositionOfTheBouquet(models.Model):
flower = models.ForeignKey(
Flower, verbose_name='Выбрать цветок', on_delete=models.PROTECT
)
bouquet = models.ForeignKey(
Bouquet, verbose_name='Состав', on_delete=models.PROTECT
)
count = models.PositiveIntegerField(verbose_name='Количество', default=0)
admin.py
class CompositionOfTheBouquetInline(admin.TabularInline):
model = CompositionOfTheBouquet
@admin.register(Flower)
class Flower(admin.ModelAdmin):
pass
@admin.register(Bouquet)
class Bouquet(admin.ModelAdmin):
inlines = [CompositionOfTheBouquetInline, ]