python - 更改值查询集中的字典键

标签 python django django-orm

我有这样的东西:model.objets.values('id', 'name')返回以“id”和“name”为键的字典列表。有没有办法可以将自定义名称传递给这些键?类似:model.objets.values('id', 'name').column_names('main id', 'name of de thing I want')

我正在使用 python + django

最佳答案

是的,您可以使用命名参数,并利用 F expressions [Django-doc]相反:

from django.db.models import F

Model.objects.values(<b>main_id=F('id'), my_name=F('name')</b>)

如果“目标名称”不是有效的 Python 标识符,您可以使用字典解包:

from django.db.models import F

Model.objects.values(<b>**{</b>'main_id': F('id'), <b>'name with spaces'</b>: F('name')<b>}</b>)

话虽如此,通常建议使用 serializers [drf-doc]而不是使用 .values() 作为生成 JSON blob 的方式。

关于python - 更改值查询集中的字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59772868/

相关文章:

mysql - 带有 'in' 查找的 Django CASE

python - 从字典列表中仅打印 1 项的快捷方式

python - 创建 Django 模型或更新(如果存在)

python - Django Nginx 不提供 wagtail 管理 css/js 文件

python - 无法在 App Engine Python 上将 utf8mb4 字符集与 Cloud SQL 一起使用

python - Django ORM 和 Django REST 框架 : How to make "grouped" arrays?

python - 根据具有不同列表值的列中的 len(list) 重复 DataFrame 中的行 N 次

python - 我无法在子进程中从 os.system 获得相同的结果

python - Docker 找不到我在 MacOS Big Sur 上添加到文件共享的路径

python - 在 Django 中使用临时表连接替代 `IN`