Django使用反向查找更新外键模型
我正在做一个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
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(数量=)
非常感谢。这起作用了:)