def __init__( self, _type, pagination=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs, ): kwargs.setdefault("args", {}) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class) self.filtering_args = get_filtering_args_from_non_model_filterset( self.filterset_class) kwargs["args"].update(self.filtering_args) pagination = pagination or OrderingOnlyArgumentPagination() if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = pagination.to_graphql_fields() self.pagination = pagination kwargs.update(**pagination_kwargs) self.accessor = kwargs.pop('accessor', None) super(DjangoFilterPaginateListField, self).__init__(_type, *args, **kwargs)
def __init__(self, _type, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs): if DJANGO_FILTER_INSTALLED: _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset(self.filterset_class, _type) kwargs.setdefault('args', {}) kwargs['args'].update(self.filtering_args) if 'id' not in kwargs['args'].keys(): self.filtering_args.update({'id': Argument(ID, description='Django object unique identification field')}) kwargs['args'].update({ 'id': Argument(ID, description='Django object unique identification field') }) if not kwargs.get('description', None): kwargs['description'] = '{} list'.format( _type._meta.model.__name__ ) super(DjangoFilterListField, self).__init__( List(_type), *args, **kwargs )
def __init__( self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs, ): _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault("args", {}) kwargs["args"].update(self.filtering_args) if "id" not in kwargs["args"].keys(): self.filtering_args.update({ "id": Argument( ID, description="Django object unique identification field") }) kwargs["args"].update({ "id": Argument( ID, description="Django object unique identification field") }) pagination = pagination or graphql_api_settings.DEFAULT_PAGINATION_CLASS( ) if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = pagination.to_graphql_fields() self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get("description", None): kwargs["description"] = "{} list".format( _type._meta.model.__name__) super(DjangoFilterPaginateListField, self).__init__(List(_type), *args, **kwargs)
def __init__(self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, preprocess_kwargs=None, *args, **kwargs): _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault('args', {}) kwargs['args'].update(self.filtering_args) if 'id' not in kwargs['args'].keys(): self.filtering_args.update({ 'id': Argument( ID, description='Django object unique identification field') }) kwargs['args'].update({ 'id': Argument( ID, description='Django object unique identification field') }) pagination = pagination or graphql_api_settings.DEFAULT_PAGINATION_CLASS if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = list_pagination_factory(pagination) self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get('description', None): kwargs['description'] = '{} list'.format( _type._meta.model.__name__) preprocess_kwargs = preprocess_kwargs or kwargs_formatter kwargs = preprocess_kwargs(**kwargs) super(DjangoFilterPaginateListField, self).__init__(List(_type), *args, **kwargs)
def __init__(self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, preprocess_kwargs=None, *args, **kwargs): _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault('args', {}) kwargs['args'].update(self.filtering_args) if 'id' not in kwargs['args'].keys(): self.filtering_args.update({ 'id': Argument( ID, description='Django object unique identification field') }) kwargs['args'].update({ 'id': Argument( ID, description='Django object unique identification field') }) if pagination: pagination_kwargs = list_pagination_factory(pagination) self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get('description', None): kwargs['description'] = '{} list'.format( _type._meta.model.__name__) preprocess_kwargs = preprocess_kwargs or kwargs_formatter kwargs = preprocess_kwargs(**kwargs) super(DjangoFilterPaginateListField, self).__init__(List(_type), *args, **kwargs)
def __init__( self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs, ): ''' If pagination is None, then we will only allow Ordering fields. - The page size will respect the settings. - Client will not be able to add pagination params ''' _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault("args", {}) kwargs["args"].update(self.filtering_args) pagination = pagination or OrderingOnlyArgumentPagination() if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = pagination.to_graphql_fields() self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get("description", None): kwargs["description"] = "{} list".format( _type._meta.model.__name__) # accessor will be used with m2m or reverse_fk fields self.accessor = kwargs.pop('accessor', None) super(DjangoFilterPaginateListField, self).__init__(_type, *args, **kwargs)
def __init__(self, _type, permission_classes=(), output_type=None, fields=None, extra_filter_meta=None, filterset_class=None, skip_filters=False, *args, **kwargs): self.filterset_class = {} self.filtering_args = {} assert isinstance( permission_classes, (tuple, list)), ("Permissions can only be a `List` of `Tuple` - ".format( self.__class__.__name__)) self.permission_classes = permission_classes if DJANGO_FILTER_INSTALLED and not skip_filters: _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault("args", {}) kwargs["args"].update(self.filtering_args) if "id" not in kwargs["args"].keys(): kwargs["args"].update({ "id": Argument( ID, description="Django object unique identification field" ) }) if not kwargs.get("description", None): kwargs["description"] = "{} list".format( _type._meta.model.__name__) self.skip_filters = skip_filters super(DjangoBaseListField, self).__init__(output_type or _type, *args, **kwargs)
def __init__( self, _type, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs, ): if DJANGO_FILTER_INSTALLED: _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault("args", {}) kwargs["args"].update(self.filtering_args) if "id" not in kwargs["args"].keys(): id_description = "Django object unique identification field" self.filtering_args.update( {"id": Argument(ID, description=id_description)}) kwargs["args"].update( {"id": Argument(ID, description=id_description)}) if not kwargs.get("description", None): kwargs["description"] = "{} list".format( _type._meta.model.__name__) super(DjangoListObjectField, self).__init__(_type, *args, **kwargs)
def __init__(self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs): _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset(self.filterset_class, _type) kwargs.setdefault('args', {}) kwargs['args'].update(self.filtering_args) if 'id' not in kwargs['args'].keys(): self.filtering_args.update({'id': Argument(ID, description='Django object unique identification field')}) kwargs['args'].update({'id': Argument(ID, description='Django object unique identification field')}) pagination = pagination or graphql_api_settings.DEFAULT_PAGINATION_CLASS() if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = pagination.to_graphql_fields() self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get('description', None): kwargs['description'] = '{} list'.format(_type._meta.model.__name__) super(DjangoFilterPaginateListField, self).__init__(List(_type), *args, **kwargs)
def __init__( self, _type, pagination=None, fields=None, extra_filter_meta=None, filterset_class=None, *args, **kwargs, ): _fields = _type._meta.filter_fields _model = _type._meta.model self.fields = fields or _fields meta = dict(model=_model, fields=self.fields) if extra_filter_meta: meta.update(extra_filter_meta) filterset_class = filterset_class or _type._meta.filterset_class self.filterset_class = get_filterset_class(filterset_class, **meta) self.filtering_args = get_filtering_args_from_filterset( self.filterset_class, _type) kwargs.setdefault("args", {}) kwargs["args"].update(self.filtering_args) """ # filtering by primary key or id seems unnecessary... if "id" not in kwargs["args"].keys(): self.filtering_args.update( { "id": Argument( ID, description="Django object unique identification field" ) } ) kwargs["args"].update( { "id": Argument( ID, description="Django object unique identification field" ) } ) """ pagination = pagination or OrderingOnlyArgumentPagination() if pagination is not None: assert isinstance(pagination, BaseDjangoGraphqlPagination), ( 'You need to pass a valid DjangoGraphqlPagination in DjangoFilterPaginateListField, received "{}".' ).format(pagination) pagination_kwargs = pagination.to_graphql_fields() self.pagination = pagination kwargs.update(**pagination_kwargs) if not kwargs.get("description", None): kwargs["description"] = "{} list".format( _type._meta.model.__name__) # accessor will be used with m2m or reverse_fk fields self.accessor = kwargs.pop('accessor', None) super(DjangoFilterPaginateListField, self).__init__(_type, *args, **kwargs)