models.py
class DemoA(models.Model):
my_time = models.TimeField()
serializers.py
class DemoASerializer(serializer.ModelSerializer):
class Meta:
model = DemoA
fields = ('my_time', )
默认情况下,my_time
字段的格式为10:30:00
(%H:%M:%S
)。所需的是序列化格式为10:30
(%H:%M
)。
有没有默认的方式可以指定这种情况下的格式,例如在序列化程序extra_kwargs
中指定Meta
?
答案 0 :(得分:3)
您可以通过指定TimeField
[drf-doc](这不是Django模型的TimeField
[Django-doc])来指定字段应如何设置数据格式:
class DemoASerializer(serializers.ModelSerializer):
my_time = serializers.TimeField(format='%H:%M')
class Meta:
model = DemoA
fields = ('my_time', )
class DemoASerializer(serializers.ModelSerializer):
class Meta:
model = DemoA
fields = ('my_time', )
extra_kwargs = {'my_time': {'format': '%H:%M'}}
答案 1 :(得分:0)
可以在序列化程序上设置格式,但是它可以按比例缩放,因为您需要将其添加到整个应用程序的所有序列化程序中。 DRF允许您在设置上将其设置为应用程序的默认格式。您将显示设置它,并仅在需要时覆盖序列化器上的格式。
REST_FRAMEWORK = {
... # your other stuff
'TIME_INPUT_FORMATS': ('%H:%M', )
}