我想访问模型中两级以下的值列表,以便在模板中显示
在下面的模型中,你有一个购物篮,你可以在里面放不同种类的肉
假设你现在在购物篮里放了两种肉,里贝耶和臀部牛排,这两种肉的蛋白质含量是多少
我的模型如下所示:
class ShopOrder(models.Model):
order_date = models.DateField()
meatbasket = models.ManyToManyField('food.Meat', blank=True)
# App food
class Meat(models.Model):
name = models.CharField(max_length=20)
nutrition = models.OneToOneField(Nutrition, blank=True, null=True, on_delete=models.SET_NULL)
class Nutrition(models.Model):
protein = models.IntegerField()
fat = models.IntegerField()
我可以在第一层创建一个列表(下面模型“meat”中的“meat”名称列表:
meat_names = list(object.meatbasket.values_list('name', flat=True))
但是,我如何访问下一个级别,即在我的示例中,获取每个肉类名称的“蛋白质”数量
作为一种查询集方法,您可以使用“_u”访问跨越关系的字段。这在文档中有描述
在你的情况下,这可能是
返回shoppingorder中的所有肉类名称和相关蛋白质值
下面是从
ShopOrder
模型返回/打印protein
值的普通Python代码您也可以在Django模板中使用^{} loop 执行相同的操作
shop_order_qs
是包含ShopOrder.objects.all()
或ShopOrder
查询集值的上下文变量相关问题 更多 >
编程相关推荐