1
resposta

Erro filterset_fields - Aula 4

Meu código está assim

from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters, viewsets

from clientes.models import Cliente
from clientes.serializers import ClienteSerializer


class ClientesViewSet(viewsets.ModelViewSet):
    """Listando clientes"""

    queryset = Cliente.objects.all()
    serializer_class = ClienteSerializer
    filter_backends = [
        DjangoFilterBackend,
        filters.OrderingFilter,
        filters.SearchFilter,
    ]
    ordering_fields = ["nome"]
    search_fields = ["nome", "cpf"]
    filterset_fields = ["ativo"]

e o resultado é o seguinte: Erro de execução da API

1 resposta

Olá Derek, tudo bem com você?

Peço desculpas pela demora no retorno.

O erro apresentado (TemplateDoesNotExist at /clientes/ django_filters/rest_framework/form.html) comumente é levantado quando a biblioteca django_filters não está adicionada como um app instalados no arquivo settings.py do projeto.

Peço que acesse o arquivo setup/settings.py, procure pela constante INSTALLED_APPS, e adicione nessa lista a seguinte string:

'django_filters',

Ficando como apresentado abaixo.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'clientes',
    'django_filters',
]

Salve o arquivo settings.py e reinicie a API com o comando abaixo.

python manage.py runserver

Nesse momento você poderá acessar os dados dos clientes cadastrados através do link: http://127.0.0.1:8000/clientes/.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!