O que é e como usar o Painel Administrativo do Django (Python)

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Download do Artigo

Artigo atualizado para Django 5.1 (Dezembro 2025)
Django Admin continua poderoso. Django 5.1 adiciona tema dark mode e melhorias de acessibilidade.

Salve salve Pythonista!

O Django é um poderoso framework para desenvolvimento web, escrito em Python, que oferece uma ampla gama de recursos para facilitar a criação de aplicações web de alta qualidade.

Uma das características mais notáveis do Django é seu Painel Administrativo, uma interface pré-construída que permite aos administradores do site gerenciar e visualizar facilmente os dados da aplicação.

Neste artigo, vamos explorar o que é o Painel Administrativo do Django e como usá-lo!

Vamos criar uma aplicação exemplo com modelos, mostrar todos os passos necessários para ter a interface administrativa do Django configurada e explicar o uso do ModelAdmin para personalizar o painel.

Então, bora nessa!

Vá Direto ao Assunto…

Mas primeiro...

Eu disponibilizei gratuitamente a aula introdutória do nosso Curso de Django - que é parte integrante do curso Jornada Python, aqui da Python Academy - e acho que você pode aprender bastante com ela!

Nesse vídeo você vai aprender sobre:

  • Desenvolvimento Frontend vs Backend
  • Arquitetura do Django
  • Por que aprender Django
  • O mercado para o Desenvolvedor Django
  • O salário do Dev Django trabalhando para fora
  • Quais empresas utilizam o Django

É só clicar na imagem abaixo para assistir o vídeo!

Antes de começarmos, é importante ressaltar que o Django já vem com o Painel Administrativo pré-instalado e pronto para ser utilizado.

E se você ainda não fez a configuração inicial do seu projeto Django, já corre aqui nesse artigo para iniciar os primeiros passos no Django

Portanto, você não precisa escrever código extra para habilitá-lo.

Vamos começar criando uma aplicação exemplo para que possamos explorar as funcionalidades do Painel Administrativo.

Criando uma aplicação exemplo

Primeiramente, vamos criar um novo projeto Django. Abra um terminal e execute o seguinte comando:

1
django-admin startproject meu_projeto

Em seguida, navegue até a pasta do projeto:

1
cd meu_projeto

Agora, vamos criar uma nova aplicação dentro do projeto:

1
python manage.py startapp website

Definindo os modelos

Dentro da pasta da aplicação website, abra o arquivo models.py e defina alguns modelos.

Por exemplo, vamos criar um modelo de Post e um modelo de Comentário:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from django.db import models

class Post(models.Model):
    titulo = models.CharField(max_length=200)
    conteudo = models.TextField()
    data_publicacao = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.titulo

class Comentario(models.Model):
    texto = models.TextField()
    post = models.ForeignKey(Post, on_delete=models.CASCADE)

    def __str__(self):
        return self.texto

Isso irá criar um Modelo Post com os campos de texto titulo, conteudo e data_publicacao (com auto_now_add igual à True, ou seja, ao adicionar um novo registro, esse campo utilizará a data e hora atuais).

Em seguida, criará também um Modelo Comentario com um campo de texto, chamado texto, e uma Foreign Key post (chave estrangeira) apontando para a classe Post.

Configurando o banco de dados

Antes de prosseguir, é necessário configurar o banco de dados para que o Django possa armazenar os dados dos modelos.

Abra o arquivo settings.py no diretório do projeto e localize a configuração DATABASES.

Aqui, nós configuramos de acordo com o banco de dados que estamos usando na nossa aplicação.

Por exemplo, para usar o SQLite - que é o Banco de Dados mais básico e muito utilizado durante o desenvolvimento de aplicações mais complexas - a configuração ficaria assim:

1
2
3
4
5
6
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Aplicando as migrações

Agora, é necessário aplicar as migrações para criar as tabelas do banco de dados. Execute o seguinte comando no terminal:

1
2
python manage.py makemigrations website
python manage.py migrate

Para saber mais sobre o comando makemigrations do Django, clique aqui.

E se quiser saber mais sobre o comando migrate do Django, clique aqui.

Criando um superusuário

Antes de acessar o Painel Administrativo, você precisa criar um superusuário. Execute o seguinte comando e siga as instruções:

1
python manage.py createsuperuser

Siga as instruções e guarde as credenciais que acabou de criar.

Iniciando o servidor de desenvolvimento

Agora, vamos iniciar o servidor de desenvolvimento do Django para testar nossa aplicação:

1
python manage.py runserver

Se tudo estiver correto, você verá uma saída semelhante a esta:

1
2
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Acesse o link http://127.0.0.1:8000/admin no seu navegador. Você deverá ver uma tela como essa:

Login

E então faça login usando as credenciais do superusuário que você acabou de criar.

:bulb: Estou desenvolvendo o DevBook, uma plataforma que usa IA para gerar ebooks técnicos profissionais. Te convido a conhecer clicando no botão abaixo!

Explorando o Painel Administrativo

Ao fazer login, você será redirecionado para o Painel Administrativo do Django, que tem a seguinte cara:

Home

Navegue por esta página e veja o que é possível fazer a partir daqui.

Mas vai perceber que os Modelos que criamos - Post e Comentario - não estão presentes.

Isso acontece pois é necessário primeiro fazer o registro dessas entidades para que o Django as mostre no Painel Admin.

Vamos fazer isso dentro da pasta do App website que criamos com o comando startapp.

Mais especificamente no arquivo admin.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django.contrib import admin
from website.models import Post, Comentario


class PostAdmin(admin.ModelAdmin):
    pass


class ComentarioAdmin(admin.ModelAdmin):
    pass


admin.site.register(Post, PostAdmin)
admin.site.register(Comentario, ComentarioAdmin)

Nele:

  • Criamos duas classes administrativas - PostAdmin e ComentarioAdmin - que representam nossas próprias entidades dentro do painel administrativo. Elas devem herdar de django.contrib.admin.ModelAdmin e estão vazias, por enquanto.
  • Depois disso, é necessário realizar o registro com a função admin.site.register(), linkando a entidade do sistema (lá do models.py) com a entidade administrativa.

Com isso e atualizando a página inicial do painel administrativo teremos, voilá:

Painel

Olha que tá ali: Post e Comentario.

Dando uma fuçada, verá que é possível adicionar, remover, atualizar e visualizar Posts e Comentários, tudo pela própria interface do Django.

Isso é I-N-C-R-Í-V-E-L!

Chupa Flask! cof cof… Desculpa :laughing:

💡 Django 5.1: O admin agora suporta dark mode automático e melhorias de acessibilidade (WCAG 2.1 AA).

Mas calma que tem mais!

Existem várias maneiras de personalizar a exibição dos modelos.

Vamos ver algumas :point_down:

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine as PyDicas e receba 30 dias do melhor conteúdo Python na sua Caixa de Entrada: direto e sem enrolação!

Personalizando o Painel Administrativo com o ModelAdmin

Agora chegou a melhor parte deste artigo!

O Django oferece a possibilidade de personalizar a exibição do Painel Administrativo usando a classe ModelAdmin.

Após adicionar alguns Posts, nossa interface ficará assim (perceba que apenas o título é mostrado):

Painel

E aí? Fiat Uno anda mais ou não? Deixe seu comentário abaixo :laughing:

Vamos personalizar a exibição do modelo Post para adicionar alguns campos adicionais.

Dentro do arquivo admin.py da sua aplicação website, altere o PostAdmin para o seguinte código:

1
2
class PostAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'conteudo', 'data_publicacao')

No exemplo acima, estamos adicionando o campo data_publicacao ao list_display para exibi-lo na listagem de Posts.

Adicionando campos à tabela de dados

Com isso, nossa listagem de Posts se altera para:

Painel Admin

Ao recarregar a página de administração do Post, você verá os campos conteudo e data_publicacao sendo exibido na lista de Posts.

Customizando a Ordenação dos dados

Agora, se quiser configurar a ordenação inicial das linhas da sua tabela, use o ordering, da seguinte forma:

1
2
3
class PostAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'conteudo', 'data_publicacao')
    ordering = ('-data_publicacao', )

Utilizando o símbolo de menos (-), dizemos ao Django que queremos ordem descendente. E como se trata de uma data, a mais atual virá primeiro e a mais antiga, por último.

Importante salientar que o Django espera uma Tupla, por isso que usamos os colchetes com vírgula ('-data_publicacao', ) e não apenas ('-data_publicacao'), o que gera um erro.

Adicionando campo de busca

Já se quiser adicionar um campo de busca, use o search_fields, configurando os campos onde quer realizar a busca, da seguinte forma:

1
2
3
4
class PostAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'conteudo', 'data_publicacao')
    ordering = ('-data_publicacao', )
    search_fields = ('titulo', 'conteudo')

Isso fará aparecer um box de busca e um botão acima da sua tabela, que possibilita a busca nos campos definidos em search_fields:

Painel

Simplesmente I-N-C-R-Í-V-E-L! :heart_eyes:

Adicionando filtragem nos dados

Se quiser facilitar sua vida adicionando filtragem aos dados, use o list_filter para isso.

Por exemplo, para filtrar por data_publicacao, faça:

1
2
3
4
5
class PostAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'conteudo', 'data_publicacao')
    ordering = ('-data_publicacao', )
    search_fields = ('titulo', 'conteudo')
    list_filter = ('data_publicacao', )

E olha que DEMAIS, o Django entende que é uma data e faz isso pra você:

Painel

Simplesmente adiciona uma filtragem customizada com os valores "Hoje", "Últimos 7 dias", "Este mês" e "Este ano".

E nós não precisamos programar absolutamente NADA pra isso acontecer!

Outras customizações úteis no Django 5.1

Algumas outras configurações poderosas do ModelAdmin:

  • list_per_page - Define quantos registros por página (padrão: 100)
  • list_editable - Permite editar campos direto na listagem
  • readonly_fields - Define campos somente leitura
  • fieldsets - Organiza campos em seções no formulário
  • inlines - Adiciona modelos relacionados na mesma página
  • actions - Cria ações customizadas em lote

Download do código desenvolvido

E pra te ajudar a conferir se fez tudo certinho, clique aqui para baixar o código dessa aplicação!

Não se esqueça de criar e ativar um ambiente virtual antes de começar (clique aqui caso não saiba do que se trata).

Em seguida:

  • Aplique a migração com migrate,
  • Crie o superusuário com createsuperuser,
  • Execute o servidor com runserver e veja a mágica acontecer.

Conclusão

Neste artigo, exploramos o Painel Administrativo do Django e vimos como configurá-lo e personalizá-lo.

O Painel Administrativo é uma poderosa ferramenta que permite aos administradores gerenciar os dados de uma aplicação web sem a necessidade de escrever código adicional.

Através da criação de modelos e da configuração do ModelAdmin, é possível personalizar a exibição do Painel Administrativo para atender às necessidades específicas do projeto.

Essa flexibilidade é uma das razões pelas quais o Django é tão popular entre desenvolvedores web.

Espero que este artigo tenha sido útil para entender o que é o Painel Administrativo do Django e como usá-lo.

Agora você está pronto para começar a explorar e aproveitar ao máximo essa poderosa ferramenta em seus projetos Python.

Quer levar esse conteúdo para onde for com nosso ebook GRÁTIS?

Então aproveita essa chance :point_down: :point_down: :point_down:

Ebook GRÁTIS

DESENVOLVIMENTO WEB COM PYTHON E DJANGO

Capa Ebook Desenvolvimento Web com Python e Django

Conteúdo:

  • :point_right: Veja como modelar sua aplicação
  • :point_right: Utilize a robusta API de Acesso a Dados do Django
  • :point_right: Aprenda sobre Class Based Views
  • :point_right: Construa Middlewares próprios
  • :point_right: Desenvolva filtros e tags customizados para criar lindos templates
Baixe já!

Nos vemos na próxima!

Começe agora sua Jornada na Programação!

Não deixe para amanhã o sucesso que você pode começar a construir hoje!

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.