Django Admin
Um 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)

Django admin um overview básico

  • 1.
  • 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)