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

Django使用反向查找更新外键模型,django,django-models,foreign-keys,django-queryset,reverse-lookup,Django,Django Models,Foreign Keys,Django Queryset,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 = F

我正在做一个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')
我正在尝试更新产品型号中特定信息亭名称和特定货架的产品数量。我试着这样做:

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表中的数量。我甚至不太确定我的方法是否正确。请帮我做这件事。非常感谢。

您需要浏览
产品表。您是否尝试过:

 Products.objects.filter(shelfproduct__shelf_name='Shelf A', shelfproduct__kioskshelf__kiosk_name='kiosk1').update(quantity=<quantity>)
Products.objects.filter(shelfproduct\uu shelf\u name='shelf A',shelfproduct\uu kioskshelf\uu kiosk\u name='kiosk1')。update(数量=)

非常感谢。这起作用了:)