Параметр полей метода значений Django динамически

#django

#django

Вопрос:

Как я могу динамически передавать поля в метод значений?

Например:

 fields = [‘id’, ‘name’] # could change 
items = Model.objects.all().values(fields)
 

https://github.com/django/django/blob/0c7e880e13b837dd76276c04ebdc338bb76d1379/django/db/models/query.py#L838

Заранее спасибо

Комментарии:

1. Пожалуйста, объясните, чего вы хотите достичь.

2. Не могли бы вы уточнить вопрос? Поделитесь кодом, укажите свои входные данные и цель, которую вы хотите достичь.

Ответ №1:

Вы можете выполнять повторяемую распаковку при вызове функции, например:

 fields = ['id', 'name']
#                     unpack ↓
items = Model.objects.values(*fields) 

это передаст элементы в fields качестве отдельных параметров.

При этом использование .values(…) [Django-doc] в качестве способа выполнения сериализации часто является антипаттером. Возможно, вам захочется заглянуть в раздел документации о сериализации или поработать с сериализаторами, предоставляемыми Django REST framework [drf-doc].