Solucionado (ver solução)
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.