【问题标题】:Django REST Framework DateTimeField format showing Python Time显示 Python 时间的 Django REST Framework DateTimeField 格式
【发布时间】: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


【解决方案1】:

找了这么多,终于找到答案了。

from rest_framework.renderers import JSONRenderer

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

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2023-03-14
    • 2018-05-19
    • 2018-05-25
    • 2014-03-15
    相关资源
    最近更新 更多