Python 如何使用django过滤器创建自定义过滤器
救命啊!。。。我需要制作一个搜索引擎,根据前端发送的参数进行过滤并获得结果,例如,如果他们发送3个参数(存储库、系列和产品阵列),则必须遍历阵列产品,并按存储库和系列(组)获取该产品的库存 我已经用这样的查询完成了: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: >
> 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