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
Criamos a página de crimes mas “esquecemos” de listar informações do usuário nesta página, para ficar mais fácil dele saber seu status.
Novamente, com o Django é muito simples de passar informações da view para o template, ainda mais neste caso que já salvamos o perfil do usuário e já o associamos a uma conta de usuário (Django Wars [Parte 06]: Criando um perfil de jogador).
Vamos no arquivo views.py alterar a view crimes para fazê-la passar as informações do modelo Player para o template crimes.html:
def crimes(request): if not request.user.is_authenticated(): return redirect(logar) return render_to_response("crimes.html", {"player": request.user.get_profile(), "vida": request.user.get_profile().vida * 10}) #para exibir o total de vida do usuario
Lembrando, request.user é o usuário logado.
O usuário logado possui o método get_profile() que retorna um objeto do tipo Player.
Fazendo algumas simples alterações no template crimes.html teremos isso:
<div class="container"> <p> Informações do usuário: Nível {{ player.nivel }} | Energia {{ player.energia_atual }}/{{ player.energia }} | Raiva {{ player.raiva_atual }}/{{ player.raiva }} HP: {{ player.hp }}/{{ vida }} </p> <!--lista de crimes que podem ser cometidos--> <p>Roubar carrocinha de cachorro quente. (1 de energia) (nível mínimo: 1) <a href="/cometer/1">cometer crime</a></p> <p>Roubar doce de criança. (2 de energia) (nível mínimo: 2) <a href="/cometer/2">cometer crime</a></p> <p>Roubar casa. (3 de energia) (nível mínimo: 3) <a href="/cometer/3">cometer crime</a></p> <p>Roubar banco. (4 de energia) (nível mínimo: 5)(requer arma) <a href="/cometer/4">cometer crime</a></p> <p>Roubar coisas secretas. (6 de energia) (nível mínimo: 8)(requer arma)(requer armadura) <a href="/cometer/5">cometer crime</a></p> </div> <!-- /container -->
O código atual do projeto pode ser visto aqui:
https://github.com/frenetic/django-wars
Poderia ajudar, atualizando o código, mesmo que seja só em comentários para o método correto de usar o get_profile na versao 1.7+?
Atualmente esse descrito aqui só funciona se eu estiver usando a mesma versão do tutorial e encontrei dificuldades em concluir em versões mais novas. Mesmo assim, até aqui tem sido muito útil pra aprender. 😀