def schema_validator_check_unknown_fields(self, data, original_data):
"""
Schema validator, raise ValidationError for unknown fields in a
marshmallow schema.
example::
class MySchema(marshsmallow.Schema):
# method's name is not important
__check_unknown_fields = validates_schema(pass_original=True)(
schema_validator_check_unknown_fields)
# Define the rest of your schema
...
..note:: Unknown fields with `missing` value will be ignored
"""
# Just skip if dummy data have been passed to the schema
if not isinstance(original_data, dict):
return
loadable_fields = [k for k, v in self.fields.items() if not v.dump_only]
unknown_fields = {key for key, value in original_data.items()
if value is not missing and key not in loadable_fields}
if unknown_fields:
raise ValidationError([_('Unknown field name {field}.').format(field=field)
for field in unknown_fields])
评论列表
文章目录