Jump to content

Archived

This topic is now archived and is closed to further replies.

japan

[Resolvido] Laço FOR

Recommended Posts

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

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

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

Somente os moderadores podem colocar o "Resolvido"

 

Parabéns

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.