Python 如何使用django过滤器创建自定义过滤器

Python 如何使用django过滤器创建自定义过滤器,python,django,django-rest-framework,backend,django-filter,Python,Django,Django Rest Framework,Backend,Django Filter,救命啊!。。。我需要制作一个搜索引擎,根据前端发送的参数进行过滤并获得结果,例如,如果他们发送3个参数(存储库、系列和产品阵列),则必须遍历阵列产品,并按存储库和系列(组)获取该产品的库存 我已经用这样的查询完成了: > for product in products["entries"]: > product_id = product["id"] > try: >

救命啊!。。。我需要制作一个搜索引擎,根据前端发送的参数进行过滤并获得结果,例如,如果他们发送3个参数(存储库、系列和产品阵列),则必须遍历阵列产品,并按存储库和系列(组)获取该产品的库存

我已经用这样的查询完成了:

> for product in products["entries"]:
>                 product_id = product["id"]
>                 try:
>                     query = Stock.objects.filter(product__family=family,product__id=product_id)
>                 except Stock.DoesNotExist:
>                     query = None
>                 if query:
>                     try:
>                         query_to_return = StockSerializer(query,many=True).data
但是后来我遇到了很多问题,我找不到一种方法来分页数据,因为有很多记录,所以我想用Django过滤器来做

> class Stock(CustomModel):
> product = models.ForeignKey(Product, on_delete=models.PROTECT, related_name='stocks', verbose_name=_("Producto"))
> repository = models.ForeignKey(Repository, on_delete=models.PROTECT, related_name='stocks',
> verbose_name=_("Almacén"))
> date = models.DateTimeField(auto_now=True)
> class Product(CustomModel):
> name = models.CharField(max_length=100, unique=True, verbose_name=_("Nombre"))
> codebar = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Código de Barras"))
> brand = models.ForeignKey(Brand, null=True, blank=True, on_delete=models.PROTECT, related_name='products',
> verbose_name=_("Marca"))
>     model = models.CharField(max_length=50, verbose_name=_("Modelo"))
>     data_serie = models.CharField(max_length=50, verbose_name=_("Serie de Datos"))
....another fields..



> class Repository(CustomModel):
>     name = models.CharField(max_length=100, unique=True,verbose_name=_("Nombre"))
>     code = models.CharField(_("Clave"), max_length=20, null=True, blank=True)
>     repositories_group = models.ForeignKey(RepositoriesGroup, verbose_name=_("Grupo"), on_delete=models.PROTECT,
> related_name='repositories', null=True, blank=True)
>     description = models.TextField(_("Descripción"), null=True, blank=True)
>    .......Another Fields