Gente, boa noite!!
Uma duvida sobre os Partials: se eu quiser usar o mesmo trecho de codigo pra apps diferentes, poderia usar a pasta templates com a partials na raiz do projeto ?
Grato!!
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!
Gente, boa noite!!
Uma duvida sobre os Partials: se eu quiser usar o mesmo trecho de codigo pra apps diferentes, poderia usar a pasta templates com a partials na raiz do projeto ?
Grato!!
Olá Otoniel, tudo bem com você?
Peço desculpas pela demora no retorno.
Será possível sim criarmos partials que serão comuns a múltiplos aplicativos de um projeto para isso devemos criar uma pasta templates que conterá nossas partials, e deixarmos essa pasta na raiz do nosso projeto. Essa separação criando uma nova pasta para as templates que são comuns nos aplicativos é considerado uma boa prática.
Criando uma pasta de templates, nosso projeto ficará com uma estrutura de pasta semelhante à apresentada abaixo.
├───alurareceitas
│ │ settings.py
│ │ urls.py
│ │ wsgi.py
│ │
│ └───static
│ site.css
│
├───receitas
│ │ apps.py
│ │ urls.py
│ │ views.py
│ │
│ └───templates
│ base.html
│ index.html
│ receita.html
│
├───statics
│ site.css
│
└───templates
└───partials
footer.html
menu.html
Note que ao final foi criado uma nova pasta com o nome templates contendo a pasta partials e os arquivos footer.html e menu.html. Como esses dois arquivos estão em um diretório novo, será necessário adicionarmos esse caminho nas configurações do projeto, devemos abrir o arquivo alurareceitas/settings.py, e realizarmos a seguinte adição.
Dentro do arquivo serrings.py na lista com nome TEMPLATES devemos adicionar um novo valor para a chave DIRS, informaremos que os templates também podem ser encontrados dentro da pasta templates na raiz do projeto. Ficando como abaixo:
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'receitas/templates')]Note que foi adicionado outro caminho, onde o primeiro é referente aos novos templates na raíz do projeto, os.path.join(BASE_DIR, 'templates').
Já o segundo caminho, faz referência aos templates presentes no aplicativo receitas, os.path.join(BASE_DIR, 'receitas/templates').
Após realizarmos essas mudanças, o uso das partiais permanecem da mesma forma dentro dos arquivo index.html, mantendo a mesma sintaxe: {% include 'partials/menu.html' %} e {% include 'partials/footer.html' %}.
Agora podemos fazer o uso das partiais em múltiplos aplicativos, acessando as partiais presentes no diretório raiz, com a configuração que realizamos, caso o aplicativo receita necessite ter algum partiais exclusivo, basta que seja criado novamente a pasta de templates e partial dentro do aplicativo novamente.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.