def validate(self, data):
"""
Object level validation, all descendants should call this via Super()
if it is overriden.
Validates that only fields available in writable_fields are being written
"""
# Data may be stripped of invalid fields before it gets here, check
if len(data.keys()) == 0:
raise serializers.ValidationError("Invalid data")
# Get a list of writable fields
writable_fields = self.get_writable_fields()
invalid_fields = [x for x in data.keys() if x not in writable_fields]
if len(invalid_fields) > 0:
raise serializers.ValidationError(f"The following fields are not writable: {', '.join(invalid_fields)}")
return data
评论列表
文章目录