2017-12-28 71 views
0

私はかなりの間この問題に取り組んでいます。可能であれば助けてください...Django RESTオブジェクトの日付の時刻形式を変更してください

私はdatetime値の1つがUTC形式のRESTフレームワーク応答を持っています。私はこのフォーマットをよりフレンドリーなフォーマットに変更したいと思っています。

残りのフレームワーク出力:

{ 
    "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は、[ログイン]このアイテム
  • を更新するための正しい方法であるとは思われないエラーメッセージを表示します:ファイル「/root/venv/dashbaord/lib/python3.4/を(JSONEncoder、self).default(obj)
  • 私のserializers.pyファイルでフォーマットを調整しようとしました:start_time =シリアライザ。 DateField(形式= "%y-%m-%d%H:%M:%S")ですが、何もしません。

答えて

0

答えを見つけ、settings.pyファイルで変更:

REST_FRAMEWORK = { 
    'DATETIME_FORMAT': "%Y-%m-%d - %H:%M:%S", 
} 
関連する問題