在 model_to_dict 中指定时间格式

Specify time format in model_to_dict

我有模型

class Frame(models.Model):
    timestamp = models.DateTimeField(default=timezone.now)
    url_to_frame = models.CharField(max_length=100)

    def __str__(self):
        return f"{self.timestamp}_{self.url_to_frame}"

我必须使用 from django.forms.models import model_to_dict 来序列化 Frame 对象

我收到以下格式的时间戳"timestamp": "2021-06-27T14:18:00Z"

但我需要这样的格式 2021-07-01 01:20:00

如何在我的案例中指定时间格式?

I receive timestamp in the following format "timestamp": "2021-06-27T14:18:00Z"

这是 ISO 8601 日期时间格式。我们可以用 python-dateutil package 解析它。你可以安装这个包:

pip3 install <b>python-dateutil</b>

然后我们可以用以下方法解析:

>>> from dateutil.parser import isoparse
>>> isoparse('2021-06-27T14:18:00Z')
datetime.datetime(2021, 6, 27, 14, 18, tzinfo=tzutc())

因此您可以使用以下方法预处理字典:

from dateutil.parser import isoparse

mydata['timestamp'] = isoparse(mydata['timestamp'])

如果您想进行高级序列化和反序列化,最好使用 serializers of the Django REST framework