Вычитание из поля IntegerField в django - PullRequest
0 голосов
/ 31 марта 2020

Я - медицинский технолог, пытающийся создать программу инвентаризации для моей лаборатории. Моя цель состоит в том, чтобы иметь таблицу, которая показывает все реагенты, которые мы имеем в определенном разделе лаборатории, и затем отображать ее пользователю. Я смог выполнить sh, используя django -tables2. Далее я хотел бы иметь форму, позволяющую пользователю выбрать реагент, который он извлекает, затем количество, которое он вынул, отправить форму и затем вычесть любое количество, которое он взял, из общего количества реагентов из этого количества. конкретный реагент. Вот что у меня так далеко. Любая помощь приветствуется!

forms.py
from django import forms
class ReagentCheckoutForm(forms.ModelForm):
    reagent_name= forms.CharField()
    amount_taken= forms.IntegerField()

models.py
class Inventory(models.Model):

    reagent_name= models.CharField(max_length=30)
    reagent_quantity= models.IntegerField()

views.py
def reagent_checkout(request):
    if request.method == 'POST':
        form= ReagentCheckoutForm(request.POST)
        if form.is_valid():
            form.save()
            reagent_name= form.cleaned_data['reagent_name']
            amount_taken= form.cleaned_data['amount_taken']

1 Ответ

0 голосов
/ 31 марта 2020

Просто добавьте это:

if form.is_valid():
    form.save()
    reagent_name= form.cleaned_data['reagent_name']
    amount_taken= form.cleaned_data['amount_taken']
    # get the reagent object
    reagent = Inventory.objects.get(reagent_name=reagent_name)
    # reduce quantity
    reagent.reagent_quantity -= amount_taken
    # save the object
    reagent.save()
...