2010-08-19 6 views
17

In meiner Blog-App möchte ich eine Liste von Blog-Posts und das erste Bild anzeigen, das mit diesem Post verbunden ist. Jetzt mache ich es so:Erste Artikel von QuerySet in Vorlage

{% for image in entry.image_set.all|slice:"1" %} 
    <img src="{{ image.get_absolute_url }}"> 
{% endfor %} 

Gibt es eine Vorlage Abkürzung Ich weiß nicht, über, oder vielleicht sollte ich nur meine eigenen Manager schreiben?

Antwort

40

Jetzt nicht kürzer, aber man konnte first verwenden:

{% with entry.image_set.all|first as image %} 
    <img src="{{ image.get_absolute_url }}"> 
{% endwith %} 
+0

Dank. Es ist etwas sauberer und fühlt sich besser an. Gibt es einen Unterschied rechnerisch? – vorpyg

+1

@voypyg - Ich würde überprüfen, dass es nicht wirklich alles aus der Datenbank holt - werfen Sie einen Blick auf die ausgeführten SQL. –

+0

Es sieht so aus, als ob beide Filter die SQL LIMIT-Klausel aktivieren. – vorpyg

2

Da Django 1.6 Sie

tun können
<img src="{{ entry.image_set.first.get_absolute_url }}">