---
title: "Sobrescrevendo templates"
version: 2.1
locale: pt-br
source: https://docs.djangoproject.com/pt-br/2.1/howto/overriding-templates/
canonical: https://djangodocs.dev/pt-br/2.1/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.

If you have app and project templates directories that both contain overrides,
the default Django template loader will try to load the template from the
project-level directory first. In other words, [`DIRS`](/pt-br/2.1/ref/settings/#std-setting-TEMPLATES-DIRS)
is searched before [`APP_DIRS`](/pt-br/2.1/ref/settings/#std-setting-TEMPLATES-APP_DIRS).

> **See also**
>
> Leia [Overriding built-in widget templates](/pt-br/2.1/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/2.1/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`.

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.

Since you’re overriding templates located outside of one of your project’s
apps, it’s more common to use the first method and put template overrides in a
project’s templates folder. If you prefer, however, it’s also possible to put
the overrides in an app’s template directory.

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

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

If you want to put the template overrides in an app called `myapp` and the
templates to override are named `blog/list.html` and `blog/post.html`,
then your directory structure will look like:

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

Com a configuração `APP_DIRS` definida como `True`, o carregador de templates irá procurar no diretório de templates de aplicação e encontrar os templates.
