Exemple #1
0
 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)
Exemple #2
0
    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()
Exemple #3
0
    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()
Exemple #4
0
    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)
Exemple #5
0
    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()
Exemple #6
0
    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)
                )
Exemple #7
0
 def get_attribute(self, instance):
     if self.check_permissions(instance):
         return super(Modded, self).get_attribute(instance)
     else:
         raise fields.SkipField()
Exemple #8
0
 def get_attribute(self, instance):
     attr = super().get_attribute(instance)
     if attr is None:
         raise fields.SkipField()
     return attr
Exemple #9
0
 def get_attribute(self, instance):
     raise fields.SkipField()
Exemple #10
0
 def __call__(self):
     if self.is_update:
         raise fields.SkipField()
     return self.bar