Django 使用反向查找更新外键模型

Django update a Foreign Key model using reverse lookup

我正在做一个 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')

但之后我不确定如何更新产品中的数量 table。我什至不确定我的方法是否正确。请帮助我如何去做。非常感谢。

您需要完成 Products table。你试过了吗:

 Products.objects.filter(shelfproduct__shelf_name='Shelf A', shelfproduct__kioskshelf__kiosk_name='kiosk1').update(quantity=<quantity>)