Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro nas telas de login e cadastro

Não consigo acessar as telas de login/cadastro e nem achar o erro no código, dá o seguinte erro no terminal:

[14/May/2024 06:28:24] "GET / HTTP/1.1" 200 6865
Internal Server Error: /login
Traceback (most recent call last):
  File "C:\Users\m_mb1\OneDrive\Área de Trabalho\ALURA-SPACE\venv\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\m_mb1\OneDrive\Área de Trabalho\ALURA-SPACE\venv\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E no servidor do Django dá 'TemplateDoesNotExist at /login'

1 resposta
solução!

Oii, Marcelo, tudo bem?

Isso acontece porque o Django não conseguiu encontrar o template para a página de login. Isso acontece quando o Django não consegue localizar o arquivo de template especificado no seu código.

Há algumas coisas que podemos fazer para lidar com essa situação. São elas:

  • Verificar o caminho do template: é importante que o caminho do arquivo de template esteja correto. Os templates geralmente ficam na pasta templates dentro de cada aplicativo ou em uma pasta centralizada para todos os templates, dependendo de como você configurou o seu projeto. O nome do arquivo deve ser o que você especificou na seu view ou na configuração de URLs.

  • Configuração do TEMPLATE_DIR: no arquivo settings.py, veja, por favor, se a configuração TEMPLATES está apontando para o diretório onde seus templates estão armazenados. Por exemplo:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')],  # Ajuste este caminho se necessário
            'APP_DIRS': True,
            ...
        },
    ]
    
  • Nome do template na view: na view que está tentando renderizar o template de login, o nome do template precisa estar certo. Por exemplo, se o seu arquivo de template se chama login.html, sua view deve ser parecida com isto:

    from django.shortcuts import render
    
    def login_view(request):
        return render(request, 'login.html')  # Aqui veja se 'login.html' é o nome correto
    

Se outra dúvida surgir, estamos aqui.

Abraços e bons estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software