2. O que é o Django Admin
O Admin do Django é uma app.
Esta app está distribuida juntamente com o django, dentro do pacote contrib:
django.contrib.admin
Esta app quando instalada, monta um completo set de funcionalidades e
recursos para realizar as operações mais comuns sobre models do Django,
as famosas operações de CRUD - Create, Retrieve, Update e Delete.
3. Como ele funciona ?
O Django ao carregar o arquivo settings.py verifica dentro da tupla
INSTALLED_APPS a existência de todas as apps que devem estar
disponiveis e carregadas no projeto.
Então, a primeira coisa que se tem que fazer é dizer ao django que será
utilizado no projeto o admin dele.
4. Como ele funciona ? (Continuação)
No INSTALLED_APPS (
'django.contrib.auth',
# Necessária para realizar a autenticação e acesso ao admin.
'django.contrib.contenttypes', # Necessária para realizar o mapeamento a tipos genéricos nas
models.
'django.contrib.sessions',
# Necessária para realizar o controle de sessão do admin.
'django.contrib.sites',
# Cada admin está associado a um site.
'django.contrib.messages',
# Para carregar as mensagens exibidas no admin.
'django.contrib.staticfiles',
# Para carregar os arquivos estáticos no admin.
...
'django.contrib.admin'
)
# A app de admin propriamente dita.
5. Como ele funciona ? (Continuação)
Após configurada as apps no settings.py, é necessário a realização do
comando para criar as tabelas:
python manage.py syncdb
Com isso o projeto django sabe que o admin deverá estar acessível e
disponível no projeto e também tem as tabelas necessárias criadas.
Com isso admin já está disponível ? ainda não, agora precisamos adicionar
no arquivo urls.py do PROJETO essa configuração:
6. Como ele funciona ? (Continuação)
from django.contrib import admin
admin.autodiscover()
Obs: Essa função, que está no __init__.py do pacote django.contrib.admin,
varre todas as apps setadas no settings.INSTALLED_APPS procurando por
um arquivo chamado admin.py e registra elas no site padrão do django.
urlpatterns = patterns('',
#url(r'^$', include('website.urls')),
url(r'^admin/', include(admin.site.urls)),
)
7. Como ele funciona ? (Continuação)
E….
Criar um arquivo admin.py dentro da pasta de sua app:
from django.contrib import admin
admin.site.register(SuaModel)
8. Como ele funciona ? (Continuação)
O admin pode ser personalizado tanto em funcionalidades quanto em
apresentação ? Sim, através de uma ModelAdmin e através da manipulação
dos templates. (Tema para o próximo Ligthning talk)
Posso transformar o admin em uma app plugável ? e como deployar isso ?
(Tema para o próximo do próximo Ligthning talk)
Alguns projetos de admin
django-xadmin
(https://github.com/sshwsfc/django-xadmin)
django-yadmin
(Nosso admin)