5
respostas

[Bug] Exception in thread django-main-thread

Apliquei tudo que o professor passou na aula corretamente, mas ao tentar subir o servidor recebo um erro e não consigo nem testar o filtro. Testei incluir o método do SearchFilter proposto pelo Alan em uma resposta a outro tópico com o mesmo problema, mas não obtive resultado nenhum. Segue os códigos:

views.py:

from rest_framework import viewsets, filters
from clientes.serializers import ClienteSerializer
from clientes.models import Cliente
from django_filters.rest_framework import DjangoFilterBackend

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']

settings.py:

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',
]

#Resto do código

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10,
    'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}

Exception na resposta pq não cabe aqui

5 respostas

Exception

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.10/threading.py", line 953, in run
    self._target(*self._args, **self._kwargs)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 133, in inner_run
    self.check(display_num_errors=True)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/core/management/base.py", line 486, in check
    all_issues = checks.run_checks(
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/core/checks/registry.py", line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 42, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/core/checks/urls.py", line 61, in _load_all_namespaces
    url_patterns = getattr(resolver, "url_patterns", [])
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 738, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 731, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/setup/urls.py", line 3, in <module>
    from rest_framework import routers
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/rest_framework/routers.py", line 19, in <module>
    from django.conf.urls import url
ImportError: cannot import name 'url' from 'django.conf.urls' (/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/conf/urls/__init__.py)
Traceback (most recent call last):
  File "/home/fiore/Área de Trabalho/Alura/Formação Django REST/Curso Django REST II/projeto_clientes/venv/lib/python3.10/site-packages/django/template/utils.py", line 69, in __getitem__
    return self._engines[alias]
KeyError: 'django'

Só não postei o resto pq é muito grande e não cabe no limite de caracteres aqui, mas se precisar mando o resto

Olá, Daniel! Tudo joia?

Pelo que você compartilhou, parece que você seguiu corretamente as instruções da aula para implementar a ordenação e o filtro. No entanto, só com essas informações que você compartilhou fica um pouco difícil identificar o que pode estar causando o problema. Então, peço que compartilhe todo o seu projeto, utilizando o GitHub ou o Drive do Google.

Lembre-se de criar o arquivo "requirements.txt" com as versões das bibliotecas que você está usando no projeto, pois existem alguns erros internos no seu log, com isso, o problema pode está relacionado com a versão de alguma biblioteca que você esteja usando.

Bons estudos!

Fico no aguardo e à disposição

Boa noite Armano, muito obrigado pela resposta!

Segue o github do meu projeto:

https://github.com/danfiore/projeto_clientes

Olá, conseguiu resolver? estou com o mesmo problema.

Olá pessoal! Peço desculpa pela em respondê-los.

Depois de um tempo matutando um pouco no código compartilhado pelo Daniel, entendi que o problema está relacionado as dependências do projeto. A versão do Django e algumas outras dependências estavam conflitando.

Então, para que o código rode sem problemas, deve ser feito as seguintes atualizações:

  1. Instalação do django_filter e o validate-docbr, já que eles não estão na sua lista de "requirements.txt":

    pip install django_filters validate-docbr
    
  2. Atualização das bibliotecas Django, asgiref e djangorestframework no arquivo "requirements.txt"

    asgiref==3.8.1
    Django==3.2.10
    djangorestframework==3.15.1
    
  3. Após atualizar a versão das bibliotecas acima, rode o comando pip install -r requirements.txt para instalar essas novas versões.

Ao fim da instalação o código deve voltar a rodar sem mais problemas!