首页 > 解决方案 > 如何获取特定的外键值

问题描述

我的 models.py 看起来像这样:

class Order(models.Model):
    items = models.ManyToManyField(OrderItem)

class OrderItem(models.Model):
    item = models.ForeignKey(Item, on_delete=models.CASCADE)

class Item(models.Model):
    quantity = models.IntegerField(default=1)

在我的函数中,我可以访问 Order 表,并且我正在尝试获取有关 Item 数量的信息。

我试过了:order.items.item.quantity,但我得到了那个错误:'ManyRelatedManager' object has no attribute 'item'

我如何从项目表中获取数量?

标签: pythondjango

解决方案


您需要遍历相关的查询集,

order = Order.objects.get(id=123)
for order_item in order.items.all():
    print(order_item.item.quantity)

或使用values()方法,

order = Order.objects.get(id=123)
result = order.items.values('item__quantity')

推荐阅读