Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
13
respostas

A página principal da aplicação - TemplateDoesNotExist at /

Olá a todos. Estou recebendo a mensagem 'TemplateDoesNotExist at' do Django mas não consegui identificar onde o erro está. Segue erro:

TemplateDoesNotExist at /
index.html
Request Method:    GET
Request URL:    http://localhost:8000/
Django Version:    1.7.4
Exception Type:    TemplateDoesNotExist
Exception Value:    
index.html
Exception Location:    C:\Python27\lib\site-packages\django\template\loader.py in find_template, line 136
Python Executable:    C:\Python27\python.exe
Python Version:    2.7.9
Python Path:    
['C:\\Users\\fabio\\connectedin',
 'C:\\WINDOWS\\SYSTEM32\\python27.zip',
 'C:\\Python27\\DLLs',
 'C:\\Python27\\lib',
 'C:\\Python27\\lib\\plat-win',
 'C:\\Python27\\lib\\lib-tk',
 'C:\\Python27',
 'C:\\Python27\\lib\\site-packages']
Server time:    Thu, 25 Feb 2016 10:18:43 -0300

A hierarquia da minha pasta está a seguinte:

C:\Users\fabio\connectedin\perfis\template, e dentro desta pasta tem o index.html

urls.py de connectedin/connectedin:

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('perfis.urls'))
)

urls.py de perfis

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',

    url(r'^$', 'perfis.views.index')
)

e por fim views.py

from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

Me parece que tudo esta em ordem, mas porque o Django não busca meu HTML?

13 respostas

Parece q vc pulou o passo que registra a App perfil em connectedin lá do primeiro capítulo. Verifica para mim se esta configurado.

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'perfis'
)

Pode ficar tranquilo que vários alunos passaram dessa parte sem qualquer problema. Agora é só descobrir no seu código o que não seguiu o padrão.

Acabo de descobrir!

Em settings.py tive que declarar a seguinte tupla:

'TEMPLATE_DIRS = (
    r'C:\Users\fabio\connectedin\perfis\templates',
)

Agora o Django conseguiu buscar o HTML

O nome da pasta é templates no plural, uma convenção do Django.

Remova o que Vc fez e tente, porque na sua resposta anterior estava no singular.

Eu tinha usado templates, mas mesmo assim dava o erro. Tentei template, Template, Templates e templates, mas só adicionando o TEMPLATE_DIRS no settings que fez funcionar, e a pasta com nome templates.

Esse passo não deveria ser feito mesmo que tenha funcionado. Ele esconde a causa de vc não ter conseguido.

Baixe o stage do próximo capítulo é veja se funciona.

Vc marcou como solucao, mas não é. Remova o que você fez e tenha certeza que a pasta se chama templates. Se você deixar o caminho fixo terá problemas se rodar seu projeto em outra máquina.

solução!

Oi Fábio, aguardo seu feedback. Eu quero que você termine o curso, mas da melhor maneira possível e quero entender porque o padrão do Django que é considerar a pasta templates de cada app não ter funcionado.

Agora estou no computador posso responder melhor, antes estava no celular.

A solução é show, resolve seu problema, no entanto lá para a frente teremos mais uma app chamada usuarios e você terá o mesmo problema. O default, padrão do Django tinha que ter funcionado e isso me deixa curioso.

De qualquer maneira, continue como treinamento e não pare para não esfriar a cabeça, muito pelo contrário, ela deve estar quente até o final do treinamento :)

Abraço e bom estudo!

Eu removi a alteração do settings e não voltou a ter o erro.

O que eu não compreendo eh porque não deu certo antes...a minha pasta original era templates, e não deu certo...

Relaxe, eu tenho uma hipótese meu aluno. A alteração da pasta para surtir efeito o servidor deve ser reiniciado. Talvez isso o tenha confundido.

Então, o problema original era o nome da pasta template que deveria ser templates.

Eu falo com tanta convicção porque testei bastante o projeto e as explicações antes de lançar o treinamento. Pode confiar que até o final tudo vai correr bem.

No entanto, as vezes há um problema aqui ou ali do sistema operacional do aluno ou errinhos de digitação, mas isso a gente descobre.

Sucesso e bom estudo, agora está tudo certinho!

Beleza!! Valeu pela ajuda garoto! Eu havia reiniciado também o.o

Caramba, passei pelo mesmo erro. O meu problema foi que o index não estava salvo como html. Depois de muito quebrar a cabeça que vi isso kkk.

Eu tinha baixado e usado o sublime2 no windows, mas ele não esta salvando os arquivos no formato desejado. Vou ficar como o notepad++ por enquanto kk.