views.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:django-binder 作者: CodeYellowBV 项目源码 文件源码
def _filter_field(self, queryset, field_name, qualifier, value, invert, partial=''):
        try:
            field = self.model._meta.get_field(field_name)
        except models.fields.FieldDoesNotExist:
            raise BinderRequestError('Unknown field in filter: {{{}}}.{{{}}}.'.format(self.model.__name__, field_name))

        for field_class in inspect.getmro(field.__class__):
            filter_class = self.get_field_filter(field_class)
            if filter_class:
                filter = filter_class(field)
                try:
                    return queryset.filter(filter.get_q(qualifier, value, invert, partial))
                except ValidationError as e:
                    # TODO: Maybe convert to a BinderValidationError later?
                    raise BinderRequestError(e.message)

        # If we get here, we didn't find a suitable filter class
        raise BinderRequestError('Filtering not supported for type {} ({{{}}}.{{{}}}).'
                .format(field.__class__.__name__, self.model.__name__, field_name))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号