【发布时间】:2016-10-21 18:39:46
【问题描述】:
给定一些模型
class Loan(models.Model):
time_of_loan = models.DateTimeField()
username = models.CharField()
我尝试使用 Django 的 REST 框架中的 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)
【问题讨论】:
-
你能做什么来更新对象吗
-
@marcusshep 回答了更新!
标签: python json django datetime django-rest-framework