segunda-feira, 24 de agosto de 2009

Debugar erros no console



Durante o desenvolvimento de qualquer aplicação, erros são comuns. O Django se mostra deveras eficiente para informar qual foi o erro e aonde este aconteceu. Isto quando se trata do browser.

E quanto aos erros gerados enquanto a parte visual é feita no flash? Quaisquer erros nesse caso não serão mostrados em tela, e o flash vai ficar travado esperando uma resposta que não virá.

Desenvolvimento no Flash requer muito mais cuidado, pois é bem mais complexo encontrar onde está o problema. Para amenizar um pouco a situação segue a maneira de fazer o debug no console.

Desta forma todos os erros do Django gerados durante a execução do flash serão listados no console, da mesma forma que isso já é feito no browser quando a setting DEBUG está como valor True.

Deixe o arquivo __init__.py da seguinte forma:




hasta!

Novos recursos do Admin - actions



Quando é necessário fazer uma atualização com mais um registro? Entrar um a um, editar e salvar? Existe um meio mais prático e eficiente pra fazer tais tarefas repetitivas.

Eis que surge o actions. Na versão do trunk do Django ele já vem nativo com a opção remover todos os registros selecionados, muito útil quando era preciso apagar vários ao mesmo tempo.

Essa nova funcionalidade não para por aqui. Também é possível colocar ações customizadas dentro desse fantástico recurso. Vejamos como.

Vejamos um exemplo:

Muitos os portais de conteúdo possuem a funcionalidade de colocar um determinado conteúdo, uma nóticia por exemplo, em destaque. Para isso no seu módulo de notícia, provavelmente terá o campo:

destaque = models.BooleanField(default=False)


Suponhamos que seja necessário colocar 5 noticias em destaque. Entrar uma a uma, não é uma opção, porquê como sempre digo, mais que dois é muito. Vejamos como ficaria de uma forma eficiente.

Dentro do seu admin.py, vá até a classe do admin do módulo que deseja implementar o actions, NoticiaAdmin por exemplo, e crie já as duas funções:





Note que não é necessário criar o remover selecionado, pois ele já é nativo.


A coisa toda acontece na linha 28. Perceba que não é necessário correr um for para pegar todas as notícias selecionadas. Ele simplesmente faz o update em todos os objetos de notícia que forem selecionados através do queryset.


Isto pode ser feito para atualizações em massa, duplicações, e quaisquer outros recursos que conseguir pensar para um conjunto de dados do mesmo tipo.


hasta!

Novos recursos do Admin - date_hierarchy


O date_hierarchy já funciona apartir da versão 1.0 e proporciona um filtro muito útil para a listagem dos dados de algum módulo. Ele monta uma estrutura para navegação pelas datas dos registro ali listados.

Para utilizá-lo é bem simples. Qualquer classe que possua um campo do tipo DateField pode fazer uso do mesmo. Basta colocar a seguinte linha dentro da classe do admin do seu model, dentro do admin.py

date_hierarchy = ('data')

Onde 'data' é o nome do seu atributo.

Note que ao fazer isso, logo acima da listagem dos dados vai surgir alguns links com os anos que possuem conteudo dentro daquele módulo. Ao clicar no ano, aparecerão os meses e posteriormente os dias que possuem algum conteúdo.




hasta!

sábado, 8 de agosto de 2009

Retomando......

É.....faz tempo que não posto nada.
Desde do último post muita coisa mudou no Django. Aprendi várias coisas novas que serão abordadas nos próximos tópicos.

Tais mudanças vieram junto com o a nova versao do Django. Estou ulizando a versão 1.1 beta 1. Para atualizar basta fazer o update com o svn na pasta do fonte do Django, apagar a pasta do Django que está em \Lib\site-packages e rodar o seguinte comando dentro da pasta fonte do Django:

python setup.py install

Fazendo o update, provavelmente virá uma versão mais nova que a minha, porém provavelmente não terá nenhuma mudança drástica.

Espero que desta vez, não haja tamanha demora para postagens de novos conteúdos.

hasta!