gpt4 book ai didi

python - 在 Django QuerySet.values 调用中为 dict 键设置别名

转载 作者:太空狗 更新时间:2023-10-30 01:01:29 25 4
gpt4 key购买 nike

>>> ppcs.values('price', 'currency__currency_code')
[{'price': Decimal('562.00'), 'currency__currency_code': u'JPY'}]

使用 QuerySet.values 时,有没有办法将键名别名为其他名称?例如,不是显示直通关系 currency__currency_code 的输出,而是如何使名为“currency”的字典键如以下输出所示:

>>> keys = ['price', 'currency']
>>> [dict(zip(keys, v)) for v in ppcs.values_list('price', 'currency__currency_code')]
[{'currency': u'JPY', 'price': Decimal('562.00')}]

上述想法的问题在于,在这个阶段我不需要列表(也不需要生成器对象),我希望输出保留为第一个示例中的 ValuesQuerySet

最佳答案

klasske 的评论完全回答了这个问题(感谢)--> https://code.djangoproject.com/ticket/16735

简而言之,这是 Django 1.8+ 解决方案:

from django.db.models import F
ppcs.annotate(currency=F('currency__currency_code')).values('price', 'currency')

不幸的是,这在 Django v1.7 或更早版本中是不可能的。

我更喜欢票证中最初建议的以下语法,并避免需要导入笨重的 F 对象,但没有骰子。

ppcs.values('price', currency='currency__currency_code')

关于python - 在 Django QuerySet.values 调用中为 dict 键设置别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25424022/

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