Vous êtes sur la page 1sur 4

Customizando o admin do Django com Django-Grappelli

Opa!!! Uma das grandes mgicas apresentadas pelo Django a sua interface de administrao, que se tivesse de ser feita na unha, levaria um pouco de tempo e muita pacincia! Portanto, esta facilidade oferecida pela framework uma das coisas que me encanta no Django. Mas quem nunca pensou em um admin mais bonitinho ?? Ou pelo menos nunca pensou em customizar o seu ?? Eis que buscando no amiGoogle informaes sobre como personalizar o admin do Django e coisas parecidas, encontramos o Django-Grappelli. O Django-Grappelli nada mais do que um skin para a interface adminstrativa do Django. Por vezes, meus colegas tentaram me convencer utiliz-la, mas eu, relutante, nunca havia dado uma olhadinha na mesma. Mas eis que outro dia, resolvi dar o brao a torcer, e fui dar uma olhada no grappelli. E eu gostei!!! Contando com uma interface totalmente diferente do original, enriquecida com tratos finos de css, javascripts e imagens, posso dizer que eu fiquei muito satisfeito com o resultado final do grappelli. Bom, ento, vamos aprender a aplicar o grappelli em nosso projeto. Levando em conta que voc j sabe criar um projeto, e habilitar o admin do Django, vamos direto as configuraes. Configuraes: Agora, vamos a edio do nosso arquivo settings.py ;) A primeira coisa que fao configurar o caminho absoluto do projeto, para que eu possa utilizar em outros locais sem maiores problemas ...

Agora, vamos configurar as variveis MEDIA_ROOT, MEDIA_URL, ADMIN_MEDIA_PREFIX e TEMPLATE_DIRS. Voc pode configurar seu MEDIA_ROOT da forma que voc desejar. No caso abaixo, minha pasta media, est localizada na raiz do projeto, portanto minha varivel ficou assim... MEDIA_ROOT = os.path.join(RAIZ, 'media') Minha varivel MEDIA_URL ficou com a seguinte configurao: MEDIA_URL = '/media/' A minha configurao de TEMPLATE_DIRS ficou da seguinte forma:

TEMPLATE_DIRS = ( os.path.join(RAIZ, 'templates'), ) A minha varivel ADMIN_MEDIA_PREFIX ficou assim!

ADMIN_MEDIA_PREFIX = 'http://localhost:8000/media/admin/'
Como voc pode ver, a pasta que conter os arquivos de imagens, css, javascript do admin, ficaro na pasta /media/admin/ .

Configurando o arquivo urls.py: Agora, vamos fazer a configurao do arquivo urls.py, onde devemos adicionar algumas particularidades para que as configuraes feitas anteriormente funcionem! Logo abaixo a linha que contm o seguinte trecho de cdigo from django.conf.urls.defaults import * acrescente esta linha: from django.conf import settings Agora, no urlpatterns, vamos adicionar o acesso aos nossos arquivos de media. Para tal, adicione o seguinte trecho de cdigo: (r'^media/(.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

Grappelli: Vamos agora, fazer o download do grappelli. Ele est disponvel no endereo http://code.google.com/p/django-grappelli/ A pgina em ingls... Aqui voc pode ver alguns screenshots ;) Faa o checkout do svn utilizando o link http://djangograppelli.googlecode.com/svn/trunk/ Se for de sua preferncia, voc pode fazer o checkout diretamente no diretrio corrente do seu projeto. Caso contrrio, copie a pasta chamada grappelli para dentro da pasta do seu projeto aps fazer o checkout!!! Aps fazer isto, vamos comear a configur-lo !!! Configurao do Grappelli: Adicione a lista de aplicaes do seu projeto, o grappelli. O meu ficou assim!!!

INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites',

'django.contrib.admin', 'grappelli', ) Agora, vamos os TEMPLATES_CONTEXT_PROCESSORS que no vem nas configuraes por padro... Portanto, adicione isto ao seu arquivo settings.py:
TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.auth", "django.core.context_processors.request", "grappelli.context_processors.admin_url", )

Agora, vamos modificar nosso arquivo urls.py! Adicione o seguinte trecho ao arquivo:
(r'^grappelli/', include('grappelli.urls')), Feito isto, agora sincronizar o banco de dados... manage.py syncdb Agora, vamos copiar os arquivos de template que o grappelli disponibiliza para a nossa pasta de templates! Os arquivos esto na pasta grappelli/templates

Copie-os para nossa pasta de templates ;)

Para os arquivos de media, vamos primeiro criar a pasta chamada admin dentro da pasta media. Dentro desta pasta recm criada, vamos copiar as pastas e arquivos disponibilizados pelo grappelli. Os arquivos esto dentro de grappelli/media Portanto, o media de nosso projeto ficou assim:

A pasta de templates ficou assim:

Agora, s rodar o manage.py runserver e entrar no admin para sentir a diferena visual!!! Breve mais um tutorial de customizao dos campos... Vai ser outro tutorial porque muda um pouco na edio dos ModelAdmin ;) Abraos... Fred Chevitarese GNU/Linux http://www.chevitarese.wordpress.com

Vous aimerez peut-être aussi