我想从包含ManyToMany关系中另一个模型的模型中查询数据字段。
例如,我想从Dinner
模型计算总成本,该模型与Menu
模型具有ManyToMany关系。这是简化的代码。
class Menu(models.Model):
cost = models.IntegerField()
class Dinner(models.Model):
menus = models.ManyToManyField(Menu)
objects = DinnerManager()
class DinnerManager(models.Manager):
def get_total_cost(self):
total_cost = 0
for each_menu in self.menus.all():
total_cost += each_menu.cost
return total_cost
所以我的问题是:我应该如何设置
self.menus.all()中的each_menu:
total_cost + = each_menu.cost
这两行让我的类方法正常工作? (或者,如果其他部分有误,请告诉我。我对Django还是陌生的。)
答案 0 :(得分:3)
此代码可以正常工作,只是它属于Dinner模型而不是Manager。它与特定晚餐有关,而不是与一般晚餐有关,并且需要计算与该单独晚餐相关的菜单项的值。