【问题标题】:Django update a Foreign Key model using reverse lookupDjango 使用反向查找更新外键模型
【发布时间】:2021-08-27 00:50:41
【问题描述】:

我正在处理一个 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 表中的数量。我什至不确定我的方法是否正确。请帮助我如何做到这一点。提前非常感谢。

【问题讨论】:

    标签: django django-models foreign-keys django-queryset reverse-lookup


    【解决方案1】:

    您需要查看Products 表。你试过了吗:

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

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多