python - 如何获取特定的外键值
问题描述
我的 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'
我如何从项目表中获取数量?
解决方案
您需要遍历相关的查询集,
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')
推荐阅读
- python - 初始化 Django 对象的最优雅或 Pythonic 方式是什么?
- android - Android Jetpack Compose:未解决的参考:Intent
- python - 如何计算实际总字段的总值并将此值存储在odoo模型中的另一个字段中?
- java - persistence.xml 配置到纯 Java JDO 配置
- spring - Hibernate/JPA - 是否可以有一个具有父母 ID + 另一个字段的孩子?
- python - 用于 Excel 的 Python 自动化
- python - 为什么我无法在下拉列表中选择项目?
- git - 无法更新 git 以使用访问令牌而不是密码
- python-3.x - 如何在加载 Tkinter 窗口后让 tts (pyttsx3) 说话
- mysql - 将值从客户表访问到房间类型表