django admin um overview básico
TRANSCRIPT
Django AdminUm overview geral
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.
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.
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. )
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:
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)), )
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)
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)