【问题标题】:posting date in dd-mm-YYYY format in django rest framework在 django rest 框架中以 dd-mm-YYYY 格式发布日期
【发布时间】:2020-04-07 07:00:20
【问题描述】:

我在 settings.py 文件中设置了我的 Date_INPUT_FORMATS = "%d-%m-%Y"。以下是我的设置文件 -

    REST_FRAMEWORK = {
    'DATE_INPUT_FORMATS': "%d-%m-%Y",
    'DATE_FORMAT': "%d-%m-%Y",
    'DATETIME_FORMAT': "%d-%m-%Y %H:%M:%S",
}

我有一个模特,加入日期如下:

class Employee(models.Model):
    joiningDate = models.DateField()
    name = models.CharField(max_length=50)

我的序列化器:

class EmployeeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Employee
        fields = ['joiningDate', 'name']

视图集:

class EmployeeViewSet(ModelViewSet):
    queryset = models.Employee.objects.all()
    serializer_class = serializers.EmployeeSerializer

这是我要发布的 json:

{
    "joiningDate":"31-03-2020",
    "name":"EMpname",

我认为我已正确设置,但在发布时出现以下错误:

“加入日期”:[ “日期格式错误。请改用以下格式之一:%、d、-、%、m、-、%、Y。” ]

谁能指引我正确的方向?我错过了什么?非常感谢您的回复

【问题讨论】:

    标签: python django django-models django-rest-framework


    【解决方案1】:

    根据documentationDATE_INPUT_FORMATS必须是一个列表:

    REST_FRAMEWORK = {
        "DATE_INPUT_FORMATS": ["%d-%m-%Y"],
        ...
    }
    

    【讨论】:

    • 愚蠢的我。但是,由于 DATE_FROMAT 设置,我感到困惑。那只需要一个字符串。我没有检查 INPUT_FORMATS 的文档。但我应该明白 input_formats 是复数形式。非常感谢@Ivan
    猜你喜欢
    • 2011-06-20
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    相关资源
    最近更新 更多