---
title: "Sobrescrevendo templates"
version: 3.0
locale: pt-br
source: https://docs.djangoproject.com/pt-br/3.0/howto/overriding-templates/
canonical: https://djangodocs.dev/pt-br/3.0/howto/overriding-templates/
---
# Sobrescrevendo templates

No seu projeto, você pode querer sobrescrever um template em outra aplicação Django, seja ela uma aplicação de terceiros ou uma aplicação contrib, como `django.contrib.admin` Você pode colocar os templates sobrescritos no seu diretório de templates ou em um diretório de templates de aplicação.

Se você tem diretórios de templates de projeto e aplicação em que ambos contenham sobrescritas, o carregador de templates padrão do Django tentará carregar o template a partir do diretório de nível de projeto primeiro. Em outras palavras,  é procurado antes de .

> **See also**
>
> Leia [Overriding built-in widget templates](/pt-br/3.0/ref/forms/renderers/#overriding-built-in-widget-templates) se você estiver procurando fazer isso.

## Sobrescrevendo do diretório de templates do projeto.

Primeiro, iremos explorar a sobrescrita de templates criando templates de substituição no seu diretório de templates do projeto.

Vamos dizer que você esteja tentado sobrescrever os templates de uma aplicação de terceiros chamada `blog`, que provê os templates `blog/post.html` e `blog/list.html`. As configurações relevantes do seu projeto irão parecer com:

```
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

INSTALLED_APPS = [
    ...,
    'blog',
    ...,
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        ...
    },
]
```

A configuração [`TEMPLATES`](/pt-br/3.0/ref/settings/#std-setting-TEMPLATES) e `BASE_DIR` irá existir se você tiver criado o seu projeto usando o template padrão de projeto. A configuração que precisa ser modificada é [`DIRS`](/pt-br/3.0/ref/settings/#std-setting-TEMPLATES-DIRS).

Essas configurações assumem que você tenha um diretório `templates` na raiz do seu projeto. Para sobrescrever os templates para a aplicação `blog`, crie um diretório no diretório `templates`, e adicione os arquivos de template nessa pasta recém criada.

```
templates/
    blog/
        list.html
        post.html
```

O carregador de template primeiro procura por templates no diretório `DIRS`. Quando as views na aplicação `blog` pedirem pelos templates ````blog/post.html```e ``blog/list.html````, o carregador irá retornar os arquivos que você acabou de criar.

## Sobrescrevendo de um diretório de template de aplicação.

Já que você está sobrescrevendo templates localizados fora de uma de suas aplicações do projeto, é mais comum usar o primeiro método e adicionar templates que sobrescrevem na pasta de templates do projeto. Se você preferir, entretanto, é possível colocar as sobrescritas em um diretório de templates da aplicação.

Primeiro, tenha certeza que as suas configurações de template estão verificando dentro dos diretórios de aplicação:

```
TEMPLATES = [
    {
        ...,
        'APP_DIRS': True,
        ...
    },
]
```

Se você quer colocar as sobrescritas de templates em uma aplicação chamada `myapp` e os templates a serem sobrescritos são chamados `blog/list.html` e `blog/post.html`, então sua estrutura de diretório será parecida com isso:

```
myapp/
    templates/
        blog/
            list.html
            post.html
```

Com a configuração [`APP_DIRS`](/pt-br/3.0/ref/settings/#std-setting-TEMPLATES-APP_DIRS) definida como `True`, o carregador de templates irá procurar no diretório de templates de aplicação e encontrar os templates.
