簡體   English   中英

在Django REST對象中更改日期時間格式

[英]Change Date Time Format in Django REST Object

我已經嘗試解決這個問題已有一段時間了。 請幫助...

我有一個REST框架響應,其中datetime值之一為UTC格式。 我想將此格式更改為更友好的格式。

其余框架輸出:

{ 
    "data": [
        {
            "id": "1",
            "start_time": "2017-12-28T12:56:55-08:00",
        },
        {
            "id": "2",
            "start_time": "2017-12-28T12:14:10-08:00",
        },
        {
            "id": "3",
            "start_time": "2017-12-28T09:37:35-08:00",
        },        
    ]
}

視圖:(我的代碼用於更改顯示中的start_time格式)

serializer = ChangeLogSerializer(changelog['items'], many=True)
for log in serializer.data:
    serializer.data[log]['start_time'] = log['start_time'].strftime('%Y-%m-%d %T')  

serializers.py

class ChangeLogSerializer(serializers.ModelSerializer):
    """Serializer to map the Model instance into JSON format."""

    class Meta:
        """Meta class to map serializer's fields with the model fields."""
        start_time = serializers.DateField(format="%y-%m-%d %H:%M:%S")
        model = ChangeLog

        fields = ('id', 'sku', 'serial_num', 'mac', 'sw_ver',
                  'state', 'outcome', 'logfile', 'process',
                  'cm', 'site', 'port_num', 'term_srvr',
                  'start_time', 'end_time')
        read_only_fields = ('start_time', 'end_time')

觀察:

  • serializer.data [log]似乎不是更新此項的正確方法
  • 給出錯誤消息:文件“ /root/venv/dashbaord/lib/python3.4/site-packages/rest_framework/utils/encoders.py”,第68行,默認情況下返回super(JSONEncoder,self).default(obj)
  • 嘗試在我的serializers.py文件中調整格式:start_time = serializers.DateField(format =“%y-%m-%d%H:%M:%S”),但它無能為力

找到了答案,在settings.py文件中進行了更改:

REST_FRAMEWORK = {
    'DATETIME_FORMAT': "%Y-%m-%d - %H:%M:%S",
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM