Pular para o conteúdo
Ramos da Informática - Comunidade de Desenvolvedores

Torne-se um desenvolvedor FullStack: Pacote completo de formação desenvolvedor Frontend e Backend utilizando as linguagens de programação e frameworks mais procurados no mercado de trabalho. Mais informações, aqui. Faça o download do E-BookGuia Completo Para Se Tornar um(a) Desenvolvedor(a) Full-Stack, Começando do ZERO”.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

admin

Todos os artigos deste autor

Tutorial – Como Editando o Admin do Django

Chatbots com Whatsapp e Cielo integrados Nesse curso, eu vou te mostrar como o consumidor poder realizar um pagamento por dentro do aplicativo do WhatsApp, aonde o seu cliente vai entrar numa conversa como entraria numa conversa com qualquer pessoa ou com a sua empresa, navegar entre os produtos/serviços em menus simples enviados pelo chatbot, adicionar esses produtos/serviços no carrinho de compras, e num determinado ponto do chat, um link exclusivo é enviado para o cliente preencher os dados do cartão de crédito. No final, a análise é devolvida para o Whatsapp no qual a conversa foi iniciada. Inscreva-se.

Vamos falar um pouco sobre como customizar o admin do Django. Primeiramente porque? A resposta é bem simples, quero mostrar algo para o usuário sem que ele precise entrar nas apps e fazer alguma consulta para então tomar alguma ação. Alguns exêmplos para isto seriam:

Exibir as vendas do mês em forma de gráfico por região do país
Exibir os últimos comentários adicionados
Exibir log dos ultimos usuários cadastrados

O que faremos aqui será exibir os últimos comentários ainda não liberados de um sistema de blog. Vale lembrar que aqui não discutiremos sobre os primeiros passos da aplicação. Para seguirmos adiante, vamos assumir que já temos um projeto básico com uma estrutura simples, abaixo a estrutura inicial do nosso projeto.

../blog/
├── core
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── blog
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

Para iniciarmos, precisamos da nossa tabela de comentários, vamos usar a mais simples e básica o possível.

Campo
Tipo

nome
Varchar(30)

texto
Text

liberado
Boolean

data
Date

Vamos seguir adiante e alterar a página inicial do admin para listar os últimos comentários de um simples sistema de blog. Para comerçar a editar o admin, precisamos inicialmente copiar o template que desejamos para a pasta uma pasta admin dentro ta pasta de templates do nosso projeto. Isto porque o Admin, não passa de uma app como outra qualquer, portanto o sistema de herança vai funcionar aqui, carregamento prioritariamente o seu template. Você pode conseguir o template que desejar (no nosso caso o index.html) dentro do projeto do Django mesmo, no meu caso “C:Django-1.6.3djangocontribadmintemplatesadmin”.

../blog/
├── templates
│   ├── admin
│   │   └── index.html
├── core

Tire um tempo e brinque um pouco com este template e veja o que acontece se você alterar algumas coisa. Para adicionarmos a nossa listagem, vamos adicionar um painel lateral, para tal vamos adicionar o código abaixo antes do fechamento da ultima tag div. Nele podemos ver uma chamada para uma template_tag, portanto precisamos carrega-la no topo do template.

{% load comentarios_tag %}



<div class=“module” id=“ultimos-comentarios”>
<h2>Ultimos Comentários</h2>
<h3>Liberar</h3>
{% comentarios_n_liberados %}
</div>

Esta template trata-se da responsável por fazer a consulta na base de dados e renderizar a nossa lista, portanto ela é uma ‘inclusion tag’. Se você não esta familiarizado com ‘template tags’, talvez queira dar uma olhada na documentação do django.

Vamos então criar nossa template tag ‘comentarios_n_liberados’. Primeiro devemos criar uma pasta chamada templatetags, dentro da nossa app core. Dentro ta pasta vamos inicializar um pacote python e criar o arquivo comentarios_tag.py. Nele precisamos declarar nosso metodo que deve se chamar ‘comentarios_n_liberados’ e nele fazer uma simples consulta ao banco buscando os comentários não liberados e por fim registrar a tag apontando para o template que será renderizado. Abaixo o código mais explicado.

from django import template
from core import models#Carrega o registro de template tags
register = template.Library()#Registra o metodo a seguir como uma inclusion_tag indicando o template a ser renderizad
@register.inclusion_tag(‘comentarios_n_liberados.html’)
def comentarios_n_liberados():
comentarios = models.comentario.objects.filter(liberado=False).order_by(‘data’)[0:5]
return { ‘comentarios’ : comentarios }

Abaixo o html do nosso template a ser renderizado, este deve estar dentro da pasta templates da nossa app core.

{% if not comentarios %}
<p>Nenhum comentário novo</p>
{% else %}
<ul>
{% for c in comentarios %}
<li class=“addlink”>
<a href=“{{ c.id }}”>{{ c.texto|truncatechars:30 }}</a>
</li>
{% endfor %}
</ul>
{% endif %}

Com tudo isto feito, basta subir o seu servidor e ver o resultado final, que pode ser visto na imagem abaixo.

Lembrando que aqui apenas mostrei como modificar o index do admin, para apenas listar dados do banco, mas você pode ir muito mais além. Abaixo fica a estrutura de diretórios final e um link para download do projeto funcionando.

../blog/
├── core
│   ├── templates
│   │   └── comentarios_n_liberados.html
│   ├── templatetag
│   │   └── comentarios_tag.py
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── blog
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── templates
│   ├── admin
│   │   └── index.html
└── manage.py

Espero que tenham gostado, criticas/sugestões são bem-vindas. Fontes do Projeto

Este artigo foi importado automaticamente por fazer parte do Planetário Dev. Quer fazer parte deste HUB de conteúdos? Faça parte do Planetário e veja as vantagens.

Não tem site ou blog? Seja um autor do site e ainda pode ser remunerado.

Leia também:

Facebook
LinkedIn
Twitter
Pinterest
Reddit
Telegram
WhatsApp
Email
Print

Relacionados

Deixe uma resposta