trp*_*him 5 python django django-rest-framework
我有一个模型和一个使用 DRF 的序列化程序。使用下面的代码,当通过 ajax 提交所有字段为空的表单时,我收到错误消息description“此字段不能为空”,这正是我想要的。但是对于日期时间字段,我得到“日期时间格式错误”。为什么日期时间字段也不给我“此字段不能为空”?它在评估它是否有值之前进行格式验证。根据文档,Required默认情况下应为 true,并且模型也需要它。
我怎样才能让它简单地说“这个字段不能为空”或类似的东西?现在我正在通过在调用序列化程序的视图中进行验证来解决它。
class RoomEventSerializer(serializers.ModelSerializer):
start_datetime = serializers.DateTimeField(input_formats=(['%m/%d/%Y %I:%M %p', 'iso-8601']))
end_datetime = serializers.DateTimeField(input_formats=(['%m/%d/%Y %I:%M %p', 'iso-8601']))
class Meta:
model = RoomEvent
fields = ('start_datetime', 'end_datetime', 'description', 'room', 'start_hour', 'start_min', 'start_ampm', 'end_hour', 'end_min', 'end_ampm', 'requesting_user', 'type', 'approval_status')
def validate(self, data):
if data['start_datetime'] >= data['end_datetime']:
raise serializers.ValidationError('Start date must be prior to end date.')
return data
class RoomEvent(models.Model):
description = models.CharField(max_length=250)
start_datetime = models.DateTimeField()
end_datetime = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
您使用的是哪个 django-rest-framework 版本?我认为这是一个已解决的错误DateField。请参阅https://github.com/tomchristie/django-rest-framework/issues/2687
| 归档时间: |
|
| 查看次数: |
5428 次 |
| 最近记录: |