首页 > 解决方案 > 从 Django 中的查询集中获取最大和最小格式化日期值

问题描述

session我在和之间有一对多的关系camp。现在我必须将所有营地的最大和最小日期合并为一个特定的session.

我可以这样做:

sess = Session.objects.last()
max_min_dates = sess.camp.aggregate(Min('start_date'), Max('end_date'))

但是,如果我尝试从那里发送这个,HttpResponse我会收到这个错误:

TypeError: Object of type 'date' is not JSON serializable

所以我需要在其中发送格式化的日期值。如何修改上面的代码以获得相同的效果?

标签: djangodjango-modelsdjango-queryset

解决方案


json.dumps() 的默认编码器不支持日期编码(即无法将日期转换为 str)。您可以改用 django 编码器,它支持更多数据类型,请参阅链接了解更多信息。

Django 参考

import json
from django.core.serializers.json import DjangoJSONEncoder

json_str = json.dumps(max_min_dates, cls=DjangoJSONEncoder)

推荐阅读