DRF,在序列化程序中设置日期字段格式不会更改格式
DRF, set Date field format in serializer doesn't change the format
我有一个带有日期字段的月份模型:
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
}
]
input_formats
需要一个可迭代对象,请改用 input_formats=['%m-%Y']
。
我有一个带有日期字段的月份模型:
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
}
]
input_formats
需要一个可迭代对象,请改用 input_formats=['%m-%Y']
。