Django Wars [Parte 10]: Corrigindo o modelo das Armas e Armaduras

O Django Wars foi idealizado e desenvolvido no Django 1.4. Algumas funcionalidades aqui descritas podem não funcionar ou funcionar de forma diferente em outras versões do Django

Depois de ativar o Django-admin e criar algumas armas e armaduras, percebi que os itens não tem nome.
Como os usuários vão saber quais são os itens que eles possuem. Apenas pelas fotos?
No Django-admin, os itens aparecem como “armadura-object” ou “arma-object”.
Não seria muito mais legals que os itens aparecessem com o nome certo?

Primeiro vamos colocar o nome nos itens.
Basta ir no models.py da app de itens e incluir um novo campo para as Armas e para as Armaduras.
Pense na dificuldade…

Atualizamos o nosso banco de dados com o comando syncdb.

Acabamos de adicionar um novo campo em cada modelo, só falta resolver o problema de, no Django-admin, mostrar o nome “object” ao invés de exibir o nome do item.
Para isso, precisamos criar dentro de cada classe que define um item – a classe Arma e a classe Armadura – o método de nome __unicode__, fazendo-o retornar o campo nome.
Nosso models.py vai ficar assim:

O que fizemos foi dizer ao Django que sempre que precisar nomear o objeto, utilize o campo self.nome.

Novamente, precisamos executar o comando syncdb.

E pronto, basta acessar o django-admin e ver os novos campos criados e os novos nomes dos itens.

O código fonte do projeto encontra-se em:
https://github.com/frenetic/django-wars

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *