Django Rest框架过滤器

编程入门 行业动态 更新时间:2024-10-10 15:27:51
本文介绍了Django Rest框架过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用由Django rest框架制成的API,我正在尝试过滤JSON 这是我的 serializers.py 文件

I'm working with API made from Django rest framework, I am trying to make a filter to a JSON This is my serializers.py file

from rest_framework import serializers from .models import Establecimiento,Categoria,Ciudad,Zona import django_filters class EstablecimientoSerializer(serializers.ModelSerializer): class Meta: model = Establecimiento depth = 1 fields = ('nombre', 'ciudad', 'categoria', 'direccion', 'telefono', 'precioMinimo', 'precioMaximo',)

和这是我的 views.py 文件

from rest_framework import viewsets from .serializers import EstablecimientoSerializer, CategoriaSerializer from models import * from rest_framework import filters from rest_framework import generics class EstablecimientoViewSet(viewsets.ModelViewSet): queryset = Establecimiento.objects.all() serializer_class = EstablecimientoSerializer filter_fields = ('categoria',)

然后在 EstablecimientoViewSet 类,我将 filter_fields =('categoria',) 过滤为带有类别字段的网址的API

Then in the EstablecimientoViewSet class, I put a filter_fields = ('categoria',) to filter the url's API with the category field

如果将过滤器添加到查询参数,结果集不会更改,它会显示所有未过滤的数据。

If I add the filter to the query parameters, the result set does not change, it shows all data unfiltered.

...establecimiento?establecimiento=bar

如何对该型号进行此过滤?

How can I make this filter about this model?

推荐答案

您需要定义过滤器后端和所有计划过滤的相关字段:

You need to define filter backend and all related fields you're planning to filter on:

class EstablecimientoViewSet(viewsets.ModelViewSet): filter_backends = (filters.DjangoFilterBackend,) filter_fields = ('categoria', 'categoria__titulo',)

示例:

URL?categoria__titulo=Categoria 1

更多推荐

Django Rest框架过滤器

本文发布于:2023-10-12 04:10:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483683.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:过滤器   框架   Django   Rest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!