Django – Adicionando métodos ao Admin do Django… Apenas versão em desenvolvimento!!


Obs.: Vale apenas para versão em desenvolvimento…

Boa tarde!

Bom, já viram quando adicionamos um aplicativo ao admin do Django, e lá em cima onde é apresentado o grid com os dados que já foram incluídos em nosso banco de dados aparece um combobox, onde você pode remover todos os itens que você selecionou no grid?

Segue uma imagem para ilustrar!!!
Admin
É nestas horas que eu vejo como é simples resolver uma coisa que a princípio, parece complicado. Mas vem o Django facilitando nossa vida mais uma vez!

Vamos adicionar 2 métodos. Um para publicar os itens que selecionarmos, e outro para despublicar. Lógico, estou levando em conta o “problema” que tive, e a solução que dei… 😉

No meu caso, meu model possui um campo “publicada” que é um BooleanField setado para False por padrão.
Quando adicionado um novo item, caso o caboclo esqueça de marcar o campo, ele não é publicado.
Então, vamos lá!

Dentro do admin.py que você criou, vamos adicionar as funções…

def make_public(modeladmin, request, queryset):
queryset.update(publicada = True)
make_public.short_description = u”Publicar selecionados”

def make_unpublic(modeladmin, request, queryset):
queryset.update(publicada = False)
make_unpublic.short_description = u”Despublicar selecionados”

Fique atendo a identação ok 😉
Depois disto, no nosso ModelAdmin, vamos acrescentar o seguinte…
actions = [make_public, make_unpublic]

Estou levando em conta que você também já tem um admin configuradinho, mas, caso não tenha, vou colocar um print do meu para que você possa usar como parâmetro, e alterar o seu para que funcione de acordo:

Model Admin

Agora, é só salvar e pronto… Lá estão as nossas opções …

Seleções
É isto! Eu sei que tem na documentação e que devem existir  vários posts como este por aí.
Mas, criei o blog com o intuito de colocar as minhas experiências, portanto, é o que estou fazendo.

Abraços!!

Fred Chevitarese – GNU/Linux

3 Respostas to “Django – Adicionando métodos ao Admin do Django… Apenas versão em desenvolvimento!!”

  1. Mas como eu habilito aquele combo com os actions ? Fiz as actions = […,…] nas nao mostrou nenhum combo lah !
    Estou utilizando o django 1.0.2, será isto ?

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: