【问题标题】:DRF, set Date field format in serializer doesn't change the formatDRF,在序列化程序中设置日期字段格式不会改变格式
【发布时间】:2020-07-19 16:54:35
【问题描述】:

我有一个带有日期字段的月份模型:


class Month(models.Model):
    month = models.DateField(primary_key=True, unique=True)

    days = models.PositiveSmallIntegerField(default=0,
                                            validators=IntegerValidators.MONTH_VALIDATOR, )

    def __str__(self):
        return str(self.month)

它是序列化器:



class MonthSerializer(serializers.ModelSerializer):
    month = serializers.DateField(input_formats='%m-%Y', format='%m-%Y')

    class Meta:
        model = Month
        fields = '__all__'

但是当尝试发送这样的请求时:

{
  "month": "03-2020",
  "days": 12
}

我收到这个 400 响应:

{
  "month": [
    "Date has wrong format. Use one of these formats instead: %, m, -, %, Y."
  ]
}

我不想在我的设置中将此设置为默认值。

当我在可浏览 API 中发出请求时,会保存此格式:

[
    {
        "month": "07-2020",
        "days": 23
    },
    {
        "month": "07-2020",
        "days": 22
    }
]

【问题讨论】:

    标签: django-rest-framework date-formatting django-serializer datefield


    【解决方案1】:

    input_formats 需要一个可迭代对象,请改用 input_formats=['%m-%Y']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多