【问题标题】:Best way to access reverse relation's attributes访问反向关系属性的最佳方法
【发布时间】:2020-07-04 17:22:42
【问题描述】:

我有这三个模型:MenuItemSubsPizzas

Subs 和 Pizzas 在 MenuItem 上都有外来关系,例如:

menuItem = models.ForeignKey('MenuItem', related_name='pizza', on_delete=models.CASCADE)

此外,Subs 和 Pizzas 都有 @property price() 属性。我想从 MenuItem 访问这个价格属性,以便能够计算订单的价格。

实现这一点的最佳方法是什么?

我曾考虑在 MenuItem 中定义一个 price() 属性,但考虑到可能存在多个反向关系,我如何访问反向关系以检索价格?我是否需要检查所有可能的反向关系,找到一个不是 Null 的关系,然后访问价格?

谢谢

【问题讨论】:

    标签: django database django-rest-framework


    【解决方案1】:

    你可以这样试试:

    menu = MenuItem.objects.first()
    
    pizza_prices = 0
    
    for pizza in menu.pizza.all():
        pizza_prices += pizza.price
    
    sub_prices = 0
    
    for sub in menu.sub.all():
        sub_prices += sub.price
    

    更多信息可以在documenation找到。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2015-11-22
      • 2023-04-01
      • 2011-07-18
      • 2010-09-26
      相关资源
      最近更新 更多