python - изменение ключей ввода в наборе значений - PullRequest
1 голос
/ 16 января 2020

У меня есть что-то вроде этого: model.objets.values('id', 'name'), который возвращает список диктовок с 'id' и 'name' в качестве ключей. Есть ли способ, которым я могу передать пользовательские имена для этих ключей? Что-то вроде: model.objets.values('id', 'name').column_names('main id', 'name of de thing I want')?

Я использую python + django

1 Ответ

1 голос
/ 16 января 2020

Да, вы можете использовать именованные аргументы и использовать F выражений [Django -doc] вместо:

from django.db.models import F

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

In если «целевые имена» недопустимы 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>)

При этом часто рекомендуется использовать сериализаторы [drf-doc] , чем использование .values() в качестве способа создания JSON BLOB-объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...