相关疑难解决方法(0)

django休息框架过滤器

我正在使用由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',)
Run Code Online (Sandbox Code Playgroud)

这是我的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',)
Run Code Online (Sandbox Code Playgroud)

然后在EstablecimientoViewSet课堂上,我用一个filter_fields = ('categoria',) 用类别字段过滤url的API

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

...establecimiento?establecimiento=bar
Run Code Online (Sandbox Code Playgroud)

如何对此模型进行过滤?

python django django-filter django-rest-framework

23
推荐指数
2
解决办法
3万
查看次数

Django过滤器后端

我正在使用Django rest framework API,我正在尝试通过first_name或last_name或两者都进行过滤。这是我的ContactViewSet.py

class ContactViewSet(viewsets.ModelViewSet):
    queryset = Contact.objects.all()
    serializer_class = ContactSerializer
    filter_backends = (DjangoFilterBackend, )
    filter_fields = ('first_name', 'last_name')
    lookup_field = 'idContact'
Run Code Online (Sandbox Code Playgroud)

我的DRF设置:

REST_FRAMEWORK = {
    'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',),
}
Run Code Online (Sandbox Code Playgroud)

我的actuel请求网址如下所示:

http://localhost:8000/api/v1/contacts/?first_name=Clair&last_name=Test
Run Code Online (Sandbox Code Playgroud)

但是我正在寻找这样的东西:

http://localhost:8000/api/v1/contacts/?first_name=Cl**&last_name=Tes**
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激 ..

python django django-rest-framework django-rest-swagger

7
推荐指数
3
解决办法
8576
查看次数