Django REST框架DateTimeField格式显示Python时间

时间:2016-06-20 13:20:26

标签: python json django datetime django-rest-framework

给出一些模型

class Loan(models.Model):
    time_of_loan = models.DateTimeField()
    username = models.CharField()

我试图使用Django的REST Framework中的ModelSerializer来序列化Loan

class LoanSerializer(serializers.ModelSerializer):
    time_of_loan = serializers.DateTimeField(
    format=None, input_formats=['%Y-%m-%d %H:%M:%S',])
    class Meta:
        model = `Loan`
        fields = ['time_of_loan', 'username']

使用serializer.data获取JSON格式时,第一次保存时,第一次保存模型时,JSON表现良好。

{
  'time_of_loan': '2016-06-20 00:00:00+08:00', 
  'username': 'doe'
}

然而,当我尝试更新模型时,它“行为不端”并以python datetime格式显示。

{
  'time_of_loan': datetime.datetime(2016, 6, 20, 7, 55, tzinfo=<UTC>), 
  'username': 'doe'
}

我需要做哪些更改,每当模型被序列化时,它仍然是我想要的第一种格式?

第一次编辑

您能否展示您正在做的更新对象

问的问题是我更新模型的方法。我实际上使用它作为审计日志,因此它从实际的Django表单中获取。在forms.py

id = forms.cleaned_data.get('id')
username = forms.cleaned_data.get('username')
loan = Loan.objects.filter(id=id) #Queryset with count() = 1

loan.update(username=username)
loan_obj = loan[0]
serializer = LoanSerializer(loan_obj)
print(serializer.data)

1 个答案:

答案 0 :(得分:0)

经过这么多的发现,我终于得到了答案。

from rest_framework.renderers import JSONRenderer

serializer = LoanSerializer(loan_obj)
serializer.data
json = JSONRenderer().render(serializer.data)