japan 0 Report post Posted April 16, 2010 Sou novo no forum de python, e estou com uma dúvida que pode ser simples, é o seguinte: Nesse laço: {% for mensagem in latest %} <div class="mensagem"> <h2>{{ mensagem.titulo }}</h2> <div class="texto"> Postado há {{ mensagem.data|timesince }}<br/> {{ mensagem.texto }} </div> </div> {% endfor %} Gostaria de imprimir apenas as duas ultimas mensagens da lista, por exemplo, se foi enviado a mensagem 1, mensagem 2 e mensagem 3, gostaria de imprimir apenas a mensagem 2 e mensagem 3 Valeu, Galera! Share this post Link to post Share on other sites
_Isis_ 202 Report post Posted April 17, 2010 Bom, isso não é exatamente Python puro. você está usando o sistema de templates do Django. Veja se com reverse e unpacking funciona http://docs.djangoproject.com/en/dev/ref/templates/builtins/#for Outra opção é enviar somente as últimas 2 mensagens a partir do controlador p/ view usando slicing: a = ['msg1','msg2','msg3','msg4','msg5'] a[-2:] ['msg4','msg5'] Share this post Link to post Share on other sites
japan 0 Report post Posted April 19, 2010 Justamente, resolvi meu problema usando slicing. views.py def index(request): mensagens_list = Mensagem.objects.all().order_by('-publicacao')[:3] return render_to_response('index.html', {'mensagens_list': mensagens_list}) É o melhor jeito de fazer? Como colocar nesse Post que ele foi resolvido???? Share this post Link to post Share on other sites
Mário Monteiro 179 Report post Posted April 21, 2010 Somente os moderadores podem colocar o "Resolvido" Parabéns Share this post Link to post Share on other sites