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. 😀