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”