我无法在django drf中更改日期格式

use*_*967 3 django django-rest-framework

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

from rest_framework import serializers
from.models import SpaUser
from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSerializer
import datetime
from rest_framework.settings import api_settings



class SpaUserSerializer(serializers.ModelSerializer):

    date_joined = serializers.ReadOnlyField()
    birthdate = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y',])
Run Code Online (Sandbox Code Playgroud)

Lem*_*eur 5

要使其正常工作,input_formats您需要分配所需格式的参数format是输出格式

birthdate = serializers.DateField(input_formats=['%d-%m-%Y',])
Run Code Online (Sandbox Code Playgroud)

或者您可以在设置中设置默认输入格式

DATE_INPUT_FORMATS = [
    ("%d-%m-%Y"),
]
Run Code Online (Sandbox Code Playgroud)


Sam*_*iyo 5

如果是通用的,则在您的设置文件中添加"DATE_INPUT_FORMATS"到以下REST_FRAMEWORK设置:

REST_FRAMEWORK = {
    "DATE_INPUT_FORMATS": ["%d-%m-%Y"],
    ...
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请访问http://www.django-rest-framework.org/api-guide/settings/#date-and-time-formatting