Add dynamic fetching of fields to validate

This commit is contained in:
nick van berckelaer 2020-05-09 11:54:30 +02:00
parent 56ff382b17
commit cb67a15321

View File

@ -361,6 +361,12 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass):
if not field.write_only: if not field.write_only:
yield field yield field
def get_fields_to_validate(self, data):
"""
Override this method if you want more control over the fields you want to validate
"""
return self._writable_fields
def get_fields(self): def get_fields(self):
""" """
Returns a dictionary of {field_name: field_instance}. Returns a dictionary of {field_name: field_instance}.
@ -466,7 +472,7 @@ class Serializer(BaseSerializer, metaclass=SerializerMetaclass):
ret = OrderedDict() ret = OrderedDict()
errors = OrderedDict() errors = OrderedDict()
fields = self._writable_fields fields = self.get_fields_to_validate(data)
for field in fields: for field in fields:
validate_method = getattr(self, 'validate_' + field.field_name, None) validate_method = getattr(self, 'validate_' + field.field_name, None)