Iniciando¶
A área administrativa do Popebu está disponível em <url>/admin
Logando¶
Para um primeiro acesso, utilize o usuário criado na configuração do projeto.
Criando usuários¶
Para criar novos usuários acesse o menu Auth > Usuários.
As permissões do usuário estão divididas em três grupos:
- Administrador: Possui acesso à todas as áres do sistema.
- Redator: Possui acesso somente as áreas relativas à postagens.
- Segurança: Possui acesso somente as áreas de autorização do sistema.
Ao concluir com sucesso o cadastro do usuário, uma senha temporária será enviada para o email informado no cadastro.
Postando conteúdo¶
Para criar novas postagens acesse Administração > Postagens.
Widgets¶
Os widgets são as partes que compõem o template.
- Templates: Blocos e Includes
O sistema de template do Django permite o máximo reaproveitamento de código através de blocos e includes.
- Blocos:
Observe esses dois arquivos:
pai.html
<html> <head> {% block head %} <title>Ola, Mundo!</title> {% endblock %} </head> <body> {% block content %}{% endblock %} </body> </html>
filho.html
{% extends "pai.html" %} {% block content %} <p>Olá, mundo!</p> {% endblock %}
O template denominado pai possui todo o html básico do template, enquanto o filho possui somente parte de um html dentro de uma tag {% block content %}{% endblock %}. O que ocorre aqui é que quando o template filho.html for renderizado para browser ele vai possui todo o html do template pai.html, exceto a parte do bloco content, que na verdade será a parte do html descrita no template filho. Isso acontece porque o template filho extende (observe a primeira linha do arquivo filho.html) do template pai, ou seja, herda do template pai.
- Include
Os includes servem para renderizar html diretamente para algum template. Blocos podem conter includes, mas includes não podem conter blocos. Includes funcionando adicionando a tag {% include “arquivo.html” %} diretamente no template.
Para mais informações, consulte a documentação do Django sobre templates.
- Views e templatetags
As views e as templatetags são as responsáveis por gerar os dados que serão renderizados para os templates.
- Views
Views são utilizadas para realizar consultas e retornar o resultado para um template específico. Observe os exemplos abaixo:
views.py
from django.shortcuts import render_to_response from administracao.models import Postagem from django.template import RequestContext def index(request): result = Postagem.objects.filter(rascunho=False) return render_to_response( 'blog/index.html', {'result': result}, context_instance=RequestContext(request))
index.html
{% extends "blog/base.html" %} {% block content %} <div> {% for item in result %} <div> <h2><a href="{{ item.get_absolute_url }}">{{ item.titulo }}</a></h2> <div>{{ item.conteudo }}</div> </div> {% endfor %} </div> {% endblock %}
O método index presente no arquivo views.py faz a consulta de todas as postagens cadastradas e retorna os dados para o arquivo index.html
- Templatetags
São utilizadas para renderizar consultas para parte de um template. Observe abaixo:
sidebar_tags.py
from django import template from auth.models import UserProfile register = template.Library() @register.inclusion_tag('usuarios.html') def get_usuarios(context): result = UserProfile.objects.filter(is_active=True) return {'result': result}
usuarios.html
<div class="users"> {% for item in result %} <h4>{{ item.first_name }}</h4> <p>{{ item.biografia }}</p> {% endfor %} </div>
O método get_usuarios presente no arquivo sidebar_tags.py consulta os perfis de usuários cadastrados e retorna os dados para o arquivo usuarios.html. Observe que este arquivo não possui nenhum bloco, nem extende de nenhum template. Para que este aquivo seja renderizado, é necessário que em algum template (pai ou filho) carregue o arquivo sidebar_tags e faça a chamada do método get_usuarios, confome abaixo:
pai.html
<html> <head> {% block head %} <title>Ola, Mundo!</title> {% endblock %} </head> <body> {% block content %}{% endblock %} {% load sidebar_tags %} <div> {% get_usuarios %} </div> </body> </html>
Sempre que criar um novo arquivo de templatetags, lembre-se de reiniciar o servidor da aplicação. Para maiores informações, leia a documentação do Django sobre views e templatetags.