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

Salve salve Pythonista :wave:

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.

:wave: Ei, você aí! Quer se sentir realmente capaz ao desenvolver Aplicações Web com Django? Então clique no link abaixo e dê o próximo passo agora mesmo!

Jornada Django

A Jornada Django foi pensada em quem já sabe Python e quer dar o próximo passo. Aqui você vai dominar o Desenvolvimento Web com o poderoso Django.

Vinícius Ramos
Vinícius Ramos 🇺🇸 Senior Software Engineer 🇧🇷 Fundador
Conhecer detalhes
Check
Suporte a dúvidas
Check
Certificado de Conclusão
Check
Comunidade de Alunos
Check
Cursos gratuitos de HTML
Check
Cursos gratuitos de CSS
Check
Cursos gratuitos de Javascript

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:

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 a PyDicas e receba 30 dias do melhor conteúdo Python direto 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!

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!

#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.