Mudar o nome da aplicação no admin do Django

Postado por Rafael Sierra em 22/10/2008

Atenção! Pode conter links inúteis

É incrivel, passei meus ultimos um ano e meio trabalhando em empresas de terceiros, porém, eu não sentia aquele prazer que só um verdadeiro programador sente ao programar.

Mãs! Tudo mudou quando decidimos (eu e mais 4 socios) que era hora de tocar a empresa seriamente, então eu sai da empresa onde trabalhava e segui viagem para minha própria empresa.

Bom, enrolei muito já, vamos ao que interessa.

Você já deve ter se revoltado com o Django, mais precisamente com o aplicativo Admin, quando você era obrigado a aceitar uma versão capitalizada (no sentido da primeira-letra-maiúscula, e não financeiro) do nome do seu aplicativo na tela inicial da administração.

Porém, agora sei que é possivel modificar esse nome que fica com fundo azul, tudo graças a uma introspecção no código do Django, algo que eu dificilmente faria trabalhando para terceiros (esse foi o motivo de eu ter escrito aquelas abobrinhas ali em cima :P ), e ao que tudo indica, essa "funcionalidade", não está documentada (pelo menos não foi fácil encontrar informações sobre isso, tanto que devo um link aqui).

Pra resolver esse problema é simples, basta editar o model desejado e adicionar dentro da classe Meta um atributo chamado "app_label" (repare que ele não se encontra na documentação), e com isso o model será agrupado no nome que você der para ele, o interessante, é que você pode agrupar varios aplicativos dentro de uma só tabela, desde que todos os models tenham o mesmo nome no app_label.

Mas o mais bizarro mesmo, é que você pode modificar o app_label de outros aplicativos que não fazem parte do seu projeto, por exemplo, ao adicionar as seguintes linhas em algum model.py seu:

  1.  
  2. from django.contrib.auth.models import User
  3. User._meta.app_label = "AWAAAY"
  4.  

Você vai jogar o modelo User pra dentro da tabela AWAAAAY.

Só gostaria de deixar claro que usar essa "funcionalidade" (não sei se isso seria realmente uma funcionalidade, já que não está documentada) pode resultar em comportamentos adversos (do projeto, não seus), uma vez que eu não estudei completamente o código-fonte do Django pra saber até onde vão os efeitos desse atributo.

So, have fun with moderation.

Em tempo: Estou com o Django-1.0
Nota de copyright: A imagem que utilizei aqui pertence ao site http://djangoproject.com

2 Comentário para “Mudar o nome da aplicação no admin do Django”

  1. Yoshio disse em 22/10/2008 as 13:05

    Acho que até dá para fazer algumas experiências quando se trabalha para terceiros, mas somente se é você quem está criando e mantendo o projeto. Quando se tem que manter código dos outros já mais complicado.

    Quanto a “funcionalidade”, acredito que toda variável que tenha nomes com “label”, “caption”, “title”, “display” e etc. possam ser alteradas sem problema, mas se tiver um “name” acho melhor ser apenas readonly. XD

    Da última vez que usei o Django ele estava na versão 0.96, voltei a dar uma olhada nele esses dias e vi que na versão 1.0 mudaram bastante coisa. Estou tendo que rever muita coisa do zero da nova documentação, acho que meus “mini-projetos” antigos não funcionam na 1.0. Também achei um bug-zinho no Admin quando se altera alguns valores de campos no metódo save (overriding), mas nada desesperador.

  2. Fred Chevitarese disse em 22/10/2008 as 18:40

    Show !!!

Trackback URI | RSS dos comentários

Deixe um comentário

Av. Conselheiro Nébias, 368A, Cj. 413
Vila Mathias - Santos - SP
Telefone: (13) 3345-4580

© 2008 - 2009 Stiod. Todos os direitos reservados.