O Django Wars foi idealizado e desenvolvido no Django 1.4. Algumas funcionalidades aqui descritas podem não funcionar ou funcionar de forma diferente em outras versões do Django
Agora precisamos de um modo de cadastrar nossas armas e armaduras.
Nada mais justo que criar uma área de administração onde apenas usuários administradores podem acessar para cadastrar, alterar e excluir esses itens, assim como dados de jogadores, entre outras coisas.
Vamos então ter um enorme trabalho para criar uma área de administração.
NOT!
Estamos trabalhando com Django, e o pessoal que participa ativamente do desenvolvimento desta ferramenta (que é open source) sabe que todo projeto, querendo ou não, acaba precisando de uma área de administração.
Então, para não termos que inventarmos e reinventarmos a roda, digo, a área de administração para cada projeto, o Django conta com uma área de administração que possui ações ‘padrão’, e que pode ser extendido para atender os devaneios do projeto.
Para ativar a área de administração do Django é simples.
Primeiro, devemos habilitar a app django.contrib.admin, dentro da variável INSTALLED_APPS dentro do arquivo settings.py, ficando da seguinte forma:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'djangowars.players',
'djangowars.itens'
)
Na verdade o que eu fiz foi descomentar a linha.
Como é tão comum que se use o Django-admin, ele já vem escrito dentro da variável INSTALLED_APPS, só que comentado.
Agora, precisamos colocar as URLS do Django-admin dentro do arquivo urls.py do nosso projeto.
Novamente, vou apenas descomentar algumas linhas, visto que a configuração padrão das URLS do Django-admin já estão lá.
Nosso urls.py vai ficar assim:
from django.conf.urls import patterns, include, url
import djangowars.views
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', djangowars.views.index),
url(r'^registrar/$', djangowars.views.registrar), # pagina de cadastro
url(r'^login/$', djangowars.views.logar), # pagina de login
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
)
Estamos quase prontos.
Só precisamos agora atualizar o nosso banco de dados.
python manage.py syncdb
Para testarmos, basta ligar o servidor de testes do Django e acessarmos http://localhost:8000/admin (endereço padrão).
python manage.py runserver
E qual é o login de administrador?
Lembra quando criamos o formulário de cadastro de usuários?
Para isso, tivemos que incluir a app django.contrib.auth e executar o comando python manage.py syncdb para criar as tabelas desta app no banco de dados.
Ao executar este comando o Django perguntou se você desejava criar um super-admin.
Se você criou o super-admin, é só usar este usuário e senha para logar.
Se você não criou um, basta executar o seguinte comando:
python manage.py createsuperuser
Agora nosso projeto tem uma página de administração.
EBAAAAAA!!!!!
O código fonte do projeto pode ser visto aqui:
https://github.com/frenetic/django-wars
2 thoughts on “Django Wars [Parte 08]: Criando a área de administração”