Django DRF:如何在我的serializer.py中进行更改以更改日期格式?

时间:2020-03-16 23:00:03

标签: python django api django-rest-framework

我是Django DRF的新手,我需要一个小技巧。我的问题:我想将标准模型model.DateField更改为以下格式“%d-%m-%Y”。我想在“生日”字段中或一般在项目中使用它。

我在model.py中尝试使用Directlty:

... 生日= models.DateField(null = True,input_formats =“%d-%m-%Y”)),但它不起作用。 ....

我还添加了setting.py

REST_FRAMEWORK = {“ DATE_INPUT_FORMATS”:[“%d-%m-%Y”],},但是它不起作用。

现在我想在serializer.py中尝试,但是鉴于我的班级,我不知道该在哪里做。 我的serializer.py看起来像这样:

from rest_framework import serializers
from payload.models import Payload

class PayloadSerializer(serializers.ModelSerializer):
    class Meta:
        model = Payload
        fields = ['first_name', 'last_name', 'email', 'birthday',]

    def create(self, validated_data):
        """
        Create and return a new `payload` instance, given the validated data.
        """
        return Payload.objects.create(**validated_data)

    def update(self, instance, validated_data):
        """
        Update and return an existing `payload` instance, given the validated data.
        """
        instance.first_name = validated_data.get('first_name', instance.first_name)
        instance.last_name = validated_data.get('last_name', instance.last_name)
        instance.email = validated_data.get('email', instance.email)
        instance.birthday = validated_data.get('birthday',instance.birthday)
        instance.save()

        return instance   
因此,问题是:在该班级中,我将在哪里以及如何更改生日字段的格式?

非常感谢您

最佳

Rémi

1 个答案:

答案 0 :(得分:1)

将此添加到您的 settings.py

DATE_INPUT_FORMATS = ["%d-%m-%Y"]