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

Adr*_*ian 2 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

Wil*_*sem 5

是的,您可以使用命名参数,并使用F表达式 [Django-doc]代替:

from django.db.models import F

Model.objects.values(main_id=F('id'), my_name=F('name'))
Run Code Online (Sandbox Code Playgroud)

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

from django.db.models import F

Model.objects.values(**{'main_id': F('id'), 'name with spaces': F('name')})
Run Code Online (Sandbox Code Playgroud)

话虽如此,通常建议使用序列化程序[drf-doc],而不是.values()用作生成 JSON blob 的方法。