gpt4 book ai didi

python - django rest框架过滤器

转载 作者:IT老高 更新时间:2023-10-28 20:26:05 26 4
gpt4 key购买 nike

我正在使用由 Django REST 框架制作的 API,我正在尝试对 JSON 进行过滤这是我的 serializers.py 文件

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',)使用类别字段过滤 url 的 API

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

...establecimiento?establecimiento=bar

我怎样才能为这个模型制作这个过滤器?

最佳答案

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

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

示例:

URL?categoria__titulo=Categoria 1

关于python - django rest框架过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21374253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com