Django Wars [Parte 08]: Criando a área de administração

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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *