1

我正在处理一个 Django 项目并遇到了一个问题。我的模型如下所示:

class Products(models.Model):
   basket_name = models.CharField(max_length = 5, blank = False)
   product_name = models.CharField(max_length = 30, blank = False)
   quantity = models.PositiveSmallIntegerField(null = False, blank = False, default=1)

class ShelfProduct(models.Model):
   shelf_name = models.CharField(max_length = 15, default="defaultshelf")
   products = models.ManytoManyField(Products)
   ..... other fields....

class KioskShelf(models.Model):
   kiosk_name = models.CharField(max_length= 15, default="default")
   shelfproduct = models.ManytoManyField(ShelfProduct)
   ...other fields....

class MapperModel(models.Model):
   kioskshelf = models.ForeignKey(KioskShelf, on_delete = models.CASCADE)
   ...other fields....

我正在尝试为特定信息亭名称和特定货架更新产品模型中的产品数量。我试过这样:

data = MapperModel.objects.filter(kioskshelf__kiosk_name = 'kiosk1').filter(kioskshelf__shelfproduct__shelf_name = 'Shelf A')

但在此之后我不确定如何更新 Products 表中的数量。我什至不确定我的方法是否正确。请帮助我如何做到这一点。提前非常感谢。

4

1 回答 1

2

你需要通过Products桌子。你有没有尝试过:

 Products.objects.filter(shelfproduct__shelf_name='Shelf A', shelfproduct__kioskshelf__kiosk_name='kiosk1').update(quantity=<quantity>)
于 2021-06-10T06:40:22.070 回答