Django rest框架DateField格式

Jac*_*uin 6 django django-models django-forms django-views django-rest-framework

我有drf模型,它包含DateField。该字段的默认格式是“ YYYY-MM-DD”,只是我想转换“ DD-MM-YYYY”怎么可能。

models.py

class Reminder(BaseModel):
    content = models.TextField()
    schedule_date = models.DateField()
    schedule_time = models.TimeField()
    is_release = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

序列化器

class ReminderSerializer(HyperlinkedModelSerializer):
    schedule_date = serializers.DateField(format="%d-%m-%Y")
    class Meta:
        model = Reminder
        fields = ('id','content','created_at','schedule_date','schedule_time','user_id','is_release','is_deleted',)
Run Code Online (Sandbox Code Playgroud)

在serializer.py中,我只给出了格式,但是该格式仅在“列表”页面中会聚。如您所见,清单很不错,但是POST操作字段未转换。API请看图片

Tho*_*ang 8

您可以在此查看DRF的文档。基本上format只处理输出,但是对于输入,您需要包括input_formats-根据您的情况,您可以schedule_date = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y', 'iso-8601'])

是否要保留iso-8601取决于您。