DRF django 中的日期字段
DateField in DRF django
我有一个带有 DateField 的模型。
class A(model.Model):
a = model.DateField()
class SerializerA(serializers.ModelSerializer):
class Meta:
model = A
fields = (a,)
我传递的有效载荷有可能只发送一年,例如:-
{
"a": "1991"
}
它 returns 一个错误说
"Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]."
我已经传递了一种格式,如错误中所述,但我仍然遇到错误。
为什么?
您需要将所有需要的日期格式设置为 settings.py
中的变量 DATE_INPUT_FORMATS
,例如:
DATE_INPUT_FORMATS = ['%d-%m-%Y']
一个简单的解决方案是,在序列化程序中将 field a
定义为单独的,并为 input_formats
参数
提供足够的值
<b>required_formats = ['%Y', '%d-%m-%Y'] # add other formats you need</b>
class SerializerA(serializers.ModelSerializer):
<b>a = serializers.DateField(input_formats=required_formats)</b>
class Meta:
model = A
fields = ('a',)
我有一个带有 DateField 的模型。
class A(model.Model):
a = model.DateField()
class SerializerA(serializers.ModelSerializer):
class Meta:
model = A
fields = (a,)
我传递的有效载荷有可能只发送一年,例如:-
{
"a": "1991"
}
它 returns 一个错误说
"Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]]."
我已经传递了一种格式,如错误中所述,但我仍然遇到错误。
为什么?
您需要将所有需要的日期格式设置为 settings.py
中的变量 DATE_INPUT_FORMATS
,例如:
DATE_INPUT_FORMATS = ['%d-%m-%Y']
一个简单的解决方案是,在序列化程序中将 field a
定义为单独的,并为 input_formats
参数
<b>required_formats = ['%Y', '%d-%m-%Y'] # add other formats you need</b>
class SerializerA(serializers.ModelSerializer):
<b>a = serializers.DateField(input_formats=required_formats)</b>
class Meta:
model = A
fields = ('a',)