Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django库存更新功能_Python_Django_Django Views - Fatal编程技术网

Python Django库存更新功能

Python Django库存更新功能,python,django,django-views,Python,Django,Django Views,我是新来的Django,我正在做一个小项目,我有两个模型和库存。对于项目模型,我有一个表单,用户可以在其中选择产品并选择他/她想要购买的数量。如果客户选择产品1和数量30,我希望函数从库存模型中的产品1减去30。如何在views.py中实现这一点,我认为我的views.py是不正确的 models.py class Item(models.Model): product_choices = (('product1', 'product1'),('product2','product2')

我是新来的Django,我正在做一个小项目,我有两个模型和库存。对于项目模型,我有一个表单,用户可以在其中选择产品并选择他/她想要购买的数量。如果客户选择产品1和数量30,我希望函数从库存模型中的产品1减去30。如何在views.py中实现这一点,我认为我的views.py是不正确的

models.py

class Item(models.Model):
    product_choices = (('product1', 'product1'),('product2','product2'),)
    product = models.CharField(max_length = 100, choices = product_choices)
    quantity_choices = (('30','30'),('60','60'),)
    quantity = models.CharField(max_length = 100, choices = quantity_choices)
    
class Stock(models.Model):
    product1 = models.IntegerField(default='0', blank=True, null=True)
    product2 = models.IntegerField(default='0', blank=True, null=True)
views.py

def checkout(request):
     item = Item.objects.all()
     stock = Stock.objects.all()
     form = ItemForm(request.POST or None)
     if request.method == 'POST':
         if item.product == 'product1' and item.quantity =='30':
          stock.product1 = stock.product1 - 30
          elif:
              if item.product == 'product1' and item.quantity =='60': 
               stock.product1 = stock.product1 - 60 
          else:
               return None
这是你的密码

 if request.method == 'POST':
        item = Item.objects
        if item.filter(product = 'product1', quantity = 30):
            stockval = Stock.objects.values('product1')
            Stock.objects.update(product1 = stockval[0]['product1']-30)
        elif item.filter(product = 'product1', quantity = 60):

            stockval = Stock.objects.values('product1')
            Stock.objects.update(product1=stockval[0]['product1'] - 60)
        else:
            return None


你可以用过滤函数来代替if条件。请告诉我。嘿,我想你的代码有点问题,如果我选择60,它会扣除30。将quantity值更改为Integer,您的意思是将quantity=models.CharField(max_length=100,choices=quantity_choices)更改为quantity=models.IntegerField(max_length=100,choices=quantity_choices)quantity_choices=(‘30’,‘60’,)更改为quantity_choices=((30,30),‘60,60),)有效!!谢谢!