为了账号安全,请及时绑定邮箱和手机立即绑定

Django 日期时间格式不同于 DRF 序列化程序日期时间格式

Django 日期时间格式不同于 DRF 序列化程序日期时间格式

UYOU 2021-09-23 08:58:09
我试图理解为什么会发生这种情况。我有一个 Django DateTime 字段和使用该字段的 Django Rest Framework 序列化程序。我正在尝试比较它们的日期,并从 JSON 端点和模型结果中获得以下结果:DRF: 2018-12-21T19:17:59.353368ZModel field: 2018-12-21T19:17:59.353368+00:00有没有办法让它们相似?因此,要么使它们都成为“Z”或“+00:00”。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我从谷歌来到这里寻找快速解决方案(例如复制和粘贴)。因此,借用@RezaTorkamanAhmadi 的回答,对于任何希望获得 DRF 序列化程序 DateTimeField 的人来说,您正在寻找的格式2018-12-21T19:17:59.353368+00:00(与默认格式相同,models.DateTimeField以便您的序列化值与您的模型值匹配——OP 的问题和我的问题)对于:


# settings.py


REST_FRAMEWORK = {

    ...

    'DATETIME_FORMAT': "%Y-%m-%d %H:%M:%S.%f%z", 

    ...

}

或者如果您只想要它用于您正在寻找的特定 DateTimeField 序列化器字段


from rest_framework import serializers


class MySerializer(serializers.Serializer):


    some_date = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S.%f%z")


查看完整回答
反对 回复 2021-09-23
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

除了之前的答案,您还可以更改DateTime序列化程序中的格式。


from rest_framework import serializers


class YourSerializer(serializers.ModelSerializer):

    your_datetime_field = serializers.DateTimeField(format="%Y-%m-%dT%H:%M:%S")


    class Meta:

        model = YourModel

        fields = '__all__'


查看完整回答
反对 回复 2021-09-23
  • 3 回答
  • 0 关注
  • 329 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信