我有一个具有DateField的模型。
class A(model.Model):
a = model.DateField()
class SerializerA(serializers.ModelSerializer):
class Meta:
model = A
fields = (a,)
我通过的有效负载可能只发送一年,例如:-
{
"a": "1991"
}
它返回一条错误消息,
"Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]."
我已经传递了一种格式,如错误中所述,但仍然出现错误。
为什么?
答案 0 :(得分:1)
一种简单的解决方案是,在序列化程序中将field a
定义为单独的变量,并为input_formats
参数提供足够的值
required_formats = ['%Y', '%d-%m-%Y'] # add other formats you need
class SerializerA(serializers.ModelSerializer):
a = serializers.DateField(input_formats=required_formats)
class Meta:
model = A
fields = ('a',)
答案 1 :(得分:0)
您需要将所有必需的日期格式设置为DATE_INPUT_FORMATS
中的变量settings.py
,例如:
DATE_INPUT_FORMATS = ['%d-%m-%Y']