如何在 Django 中重命名 value() 中的项目?

2024-03-31

我想做几乎一样的事情这张票位于 djangoproject.com https://code.djangoproject.com/ticket/12222,但有一些额外的格式。从这个查询

>>> MyModel.objects.values('cryptic_value_name')
[{'cryptic_value_name': 1}, {'cryptic_value_name': 2}]

我想要得到这样的东西:

>>> MyModel.objects.values(renamed_value='cryptic_value_name')
[{'renamed_value': 1}, {'renamed_value': 2}]

是否有另一种更内置的方法或者我必须手动执行此操作?


From django>=1.8您可以使用注释和 F 对象

from django.db.models import F

MyModel.objects.annotate(renamed_value=F('cryptic_value_name')).values('renamed_value')

Also extra()将被弃用,从Django 文档: https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.query.QuerySet.extra

这是一个旧的 API,我们的目标是在将来的某个时候弃用。仅当您无法使用其他查询集方法表达查询时才使用它。如果您确实需要使用它,请使用 QuerySet.extra 关键字与您的用例一起提交票证(请首先检查现有票证列表),以便我们可以增强 QuerySet API 以允许删除 extra()。我们不再改进或修复此方法的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Django 中重命名 value() 中的项目? 的相关文章

随机推荐