django-ninja如何格式化返回的日期时间字段?

361 阅读1分钟

django-ninja默认返回的时间格式是2023-07-09T15:47:32.351,如果要返回2023-07-09 15:47:32格式。可以修改ninja默认的json序列化,如下:

import datetime
from django.utils.timezone import localtime

from ninja import NinjaAPI
from ninja.renderers import JSONRenderer
from ninja.responses import NinjaJSONEncoder

from user.apis import router as user_router


class MyJsonEncoder(NinjaJSONEncoder):
    def default(self, value):
        if isinstance(value, datetime.datetime):
            return value.strftime('%Y-%m-%d %H:%M:%S')
        return super().default(value)


class MyJsonRenderer(JSONRenderer):
    encoder_class = MyJsonEncoder


api = NinjaAPI(renderer=MyJsonRenderer())

ref: github.com/vitalik/dja…