docs: def validate(self):
          """Ensure that all fields' values are valid and that non-nullable fields are present. """
          for field_name, field_obj in self._fields.items():
              value = field_obj.__get__(self, self.__class__)
  
              if value is None and field_obj.null is False:
                  raise ValidationError('Non-nullable field {0} is set to None'.format(field_name))
              elif value is None and field_obj.null is True:
                  # no further validations are possible on NoneType field
                  continue
  
              if isinstance(field_obj, NestedDocumentField):
                  value.validate()
              else:
                  field_obj.validate(value)