gpt4 book ai didi

python - Peewee 别名不起作用并抛出 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:01 25 4
gpt4 key购买 nike

我有一个订单模型和付款模型。付款模型有一个 jsonbdata

我的查询:

orders = (
Order
.select(Order, Payment.data.alias('payment_data'))
.join(Payment, JOIN_LEFT_OUTER, on=(Order.payment==Payment.id))
.iterator()
)

当我迭代上述查询并访问 order. payment_data 时,我收到 AttributeError

但是,如果我在下面编写查询,它会在迭代订单时为我提供字典中的 payment_data 键:

orders = (
Order
.select(Order, Payment.data.alias('payment_data'))
.join(Payment, JOIN_LEFT_OUTER, on=(Order.payment==Payment.id))
.dicts()
.iterator()
)

有人可以解释一下我在第一个查询中做错了什么以及如何访问 order. payment_data 吗?

谢谢

最佳答案

When I am iterating over the above query, and accessing order.payment_data, I am getting an AttributeError

付款数据可能已附加到相关的付款实例。因此,您可以使用以下方式查找值,而不是 order. payment_data:

order.payment.payment_data

如果您希望将所有属性直接修补到订单上,请使用 objects() 查询方法,该方法会跳过模型/关系图:

orders = (Order
.select(Order, Payment.data.alias('payment_data'))
.join(Payment, JOIN_LEFT_OUTER, on=(Order.payment==Payment.id))
.objects() # Do not make object-graph
.iterator())
for order in orders:
print(order.id, order.payment_data)

文档中对此进行了全部介绍:http://docs.peewee-orm.com/en/latest/peewee/relationships.html#selecting-from-multiple-sources

关于python - Peewee 别名不起作用并抛出 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59903776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com