Eu sei que isso não está no tutorial do Django, e que vergonha para eles, mas é melhor configurar caminhos relativos para suas variáveis de caminho. Você pode configurá-lo assim:
import os
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
...
MEDIA_ROOT = PROJECT_PATH + '/media/'
TEMPLATE_DIRS = (
PROJECT_PATH + '/templates/',
)
Desta forma, você pode mover seu projeto Django e suas raízes de caminho serão atualizadas automaticamente. Isso é útil quando você está configurando seu servidor de produção.
Em segundo lugar, há algo suspeito no caminho TEMPLATE_DIRS. Ele deve apontar para a raiz do diretório do seu modelo. Além disso, também deve terminar em um trailing /
.
Só vou adivinhar aqui que o .../admin/
diretório não é a raiz do seu modelo. Se você ainda deseja escrever caminhos absolutos, você deve tirar a referência ao diretório de modelos de administração.
TEMPLATE_DIRS = (
'C:/django-project/myapp/mytemplates/'
)
Com isso dito, os carregadores de modelo, por padrão, devem ser configurados para percorrer recursivamente nos diretórios de seu aplicativo para localizar arquivos de modelo.
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
# 'django.template.loaders.eggs.load_template_source',
)
Você não deve precisar copiar os modelos de administração, a menos que queira sobrescrever algo especificamente.
Você terá que executar um syncdb se ainda não o tiver executado. Você também precisará servir estaticamente aos seus arquivos de mídia se estiver hospedando django através do runserver.
os.path.join
para anexar caminhos ao diretório base.Se estiver usando as configurações do Django como instaladas, por que não apenas usar seus BASE_DIR e TEMPLATES predefinidos integrados? No Django instalado pelo pip (v1.8), recebo:
fonte
os.path.join(BASE_DIR, 'templates')
para que o caminho seja independente da plataforma.Solução inteligente no Django 2.0.3 para manter modelos no diretório do projeto (
/root/templates/app_name
):settings.py
em views.py basta adicionar o caminho do modelo:
fonte
Para Django 1.6.6:
Também estático e mídia para modo de depuração e produção:
Em urls.py você deve adicionar:
No Django 1.8 você pode definir caminhos de template, backend e outros parâmetros para templates em um dicionário ( settings.py ):
Documentos oficiais.
fonte
Eu também tive problemas com esta parte do tutorial (tutorial usado para a versão 1.7).
Meu erro foi que eu apenas editei a string 'Administração do Django' e não prestei atenção suficiente ao manual.
Esta é a linha de django / contrib / admin / templates / admin / base_site.html :
Mas depois de algum tempo e frustração, ficou claro que havia a instrução 'site_header ou default: _', que deveria ser removida. Portanto, após remover a declaração (como no exemplo do manual, tudo funcionou como esperado).
Manual de exemplo:
fonte
Tudo bem 😁 Vamos dizer que você tem um novo projeto da marca, se assim você iria para o
settings.py
arquivo e procurarTEMPLATES
uma vez que você descobriu que você acabou de colar essa linhaos.path.join(BASE_DIR, 'template')
em'DIRS'
No final, você deve obter algumas coisas como esta:Se você quiser saber onde seu diretório BASE_DIR está localizado, digite estes 3 comandos simples:
Assim que estiver no shell:
PS: Se você nomeou sua pasta de modelo com outro nome, você mudaria aqui também.
fonte
No django 2.2, isso é explicado aqui
https://docs.djangoproject.com/en/2.2/howto/overriding-templates/
fonte
No django 3.1, vá para a configuração do seu projeto e importe os
fonte
basicamente
BASE_DIR
é o diretório do seu projeto django, mesmo diretório ondemanage.py
está.fonte