Django F 表达式变换输出值

问题描述 投票:0回答:1

我正在使用 F 表达式来获取外键对象的日期值。但它返回一个日期时间对象作为日期。如何将其转换为“YYYY-MM-DD”格式?

from django.db.models import F

PendingRequest.objects.all().values('id', creation_date=F('agreement__created_at__date'))

output:
<QuerySet [
{'id': 1, 'creation_date': datetime.date(2022, 10, 16)},
{'id': 2, 'creation_date': datetime.date(2022, 10, 16)},
...
django django-queryset
1个回答
0
投票

但它返回一个日期时间对象作为日期。如何将其转换为“YYYY-MM-DD”格式?

不要使用数据库来格式化日期或字符串。数据库不应用于“渲染”数据。数据库用于存储、检索和聚合数据。 模板、序列化器等的任务是以可访问的格式提供数据。例如,在模板中,您可以使用

|date

 模板过滤器
[Django-doc]: 设置日期格式 {{ my_date|date:"Y-m-d" }}

Django 还可以

序列化数据 [Django-doc],如果你将其序列化为 JSON,它也会以该格式进行编码: >>> json.dumps(date(2023, 10, 20), cls=DjangoJSONEncoder) '"2023-10-20"'

© www.soinside.com 2019 - 2024. All rights reserved.