def validate_empty_values(self, data): url_regex = r'(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)' if re.match(url_regex, str(data)): raise drf_fields.SkipField() elif self.required and data == '': raise ValidationError(gettext('This field may not be blank.')) else: return super().validate_empty_values(data)
def get_attribute(self, instance): obj = super(CurrentProjectRelatedField, self).get_attribute(instance) is_art = (self.field_name == 'current_art_project' and isinstance(obj, ArtProject)) is_res = (self.field_name == 'current_research_project' and isinstance(obj, ResearchProject)) if is_art or is_res: return obj raise drf_fields.SkipField()
def get_attribute(self, instance): obj = super().get_attribute(instance) is_art = self.field_name == "current_art_project" and isinstance( obj, ArtProject) is_res = self.field_name == "current_research_project" and isinstance( obj, ResearchProject) if is_art or is_res: return obj raise drf_fields.SkipField()
def run_validation(self, data): if self.setter: if data == fields.empty: data = [] if self.kwargs.get('many') else None def fn(instance): setter = getattr(self.parent, self.setter) setter(instance, data) self.parent.add_post_save(fn) raise fields.SkipField() return super(DynamicField, self).run_validation(data)
def get_attribute(self, instance): obj = super(ActionRelatedField, self).get_attribute(instance) is_comment = self.field_name == 'comment' and isinstance(obj, Comment) is_attachment = (self.field_name == 'attachment' and isinstance(obj, Attachment)) is_responder_user = (self.field_name == 'responder_user' and isinstance(obj, Profile)) if is_comment or is_attachment or is_responder_user: return obj raise fields.SkipField()
def run_validation(self, data=empty): try: return super(EnforceValidationFieldMixin, self).run_validation(data) except serializers.ValidationError: must_validate_fields = getattr(self.parent, 'must_validate_fields', None) field_name = getattr(self, 'field_name') # only re-raise validation error when this field must be validated # as defined by must_validate_fields list on the parent serializer # or if must_validate_fields is not defined if must_validate_fields is None or field_name in must_validate_fields: raise else: raise fields.SkipField( 'This field "{}" is being skipped as per enforce validation logic.' ''.format(field_name) )
def get_attribute(self, instance): if self.check_permissions(instance): return super(Modded, self).get_attribute(instance) else: raise fields.SkipField()
def get_attribute(self, instance): attr = super().get_attribute(instance) if attr is None: raise fields.SkipField() return attr
def get_attribute(self, instance): raise fields.SkipField()
def __call__(self): if self.is_update: raise fields.SkipField() return self.bar