Как получить поле datetime в виде строки в функции django queryset list_list ()? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть модель, которая содержит поле даты и времени. Мне нужно записать строки из этой таблицы моделей в таблицу Excel.

Поскольку поле модели является полем даты и времени, при записи в Excel она записывает число типа 45976 et c для дат вместо 2020-04-01 в виде строки.

Я получаю значения строк, используя queryset.values_list(*fields_to_fetch) Это fields_to_fetch содержит поле datetime, которое я ищу. Когда я печатаю тип, он говорит DateTimeField в консоли.

Есть ли способ получить datetimefield как строковый тип?

Мне удалось преобразовать каждый элемент в values_list() для перечисления, а затем datetimefield в строку и добавление его в новый список и запись в Excel.

Я ищу способ избежать всего этого.

1 Ответ

1 голос
/ 17 апреля 2020

Использование Cast(...) функция базы данных,

from django.db.models.functions import Cast
from django.db.models import CharField

<b>cast_expr = Cast('date_time_field', output_field=CharField())</b>
data = ModelKlass.objects.<b>annotate(dt_as_str=cast_expr).values_list('dt_as_str')</b>
...