我正在使用 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)},
...
但它返回一个日期时间对象作为日期。如何将其转换为“YYYY-MM-DD”格式?
请不要使用数据库来格式化日期或字符串。数据库不应用于“渲染”数据。数据库用于存储、检索和聚合数据。 模板、序列化器等的任务是以可访问的格式提供数据。例如,在模板中,您可以使用
模板过滤器[Django-doc]: 设置日期格式
{{ my_date|date:"Y-m-d" }}
Django 还可以
序列化数据 [Django-doc],如果你将其序列化为 JSON,它也会以该格式进行编码:
>>> json.dumps(date(2023, 10, 20), cls=DjangoJSONEncoder)
'"2023-10-20"'