给出一些模型
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)
答案 0 :(得分:0)
经过这么多的发现,我终于得到了答案。
from rest_framework.renderers import JSONRenderer
serializer = LoanSerializer(loan_obj)
serializer.data
json = JSONRenderer().render(serializer.data)