J'ai ce code
{% for account in object_list %}
<tr>
{% for field, value in book.get_fields %}
<th>{{ field.verbose_name }}</th>
{% endfor %}
</tr>
{{ break }}
{% endfor %}
Je veux casser la boucle après la première itération. la pause ne fonctionne pas
Il n'y a pas break
dans le système de templates Django. Le système de templates Django n'est pas programmé avec python mais avec sa propre langue .
Selon ce que vous devez faire, vous pourriez trouver cette question utile. Sinon, placez simplement le compte un et le seul que vous essayez d'imprimer sur HTML sur un champ spécial de votre RequestContext
.
Je pense que vous devriez utiliser slice pour atteindre votre objectif
{% for account in object_list|slice:":1" %}
Vous ne pouvez pas utiliser l'instruction break, mais vous pouvez choisir de ne pas les imprimer en HTML. Ce n'est pas la meilleure solution mais vous pouvez l'utiliser. J'utilise le suivant;
{%for tumbnail in image %}
{%if tumbnail.object_id == element.id %}
<img src="/media/{{ tumbnail.image }}" class="tr_all_hover"alt="">
{{ "<!--" }}
{%endif%}
{%endfor%}
{{ "-->" }}
Cela ressemble fondamentalement à ceci sur le navigateur . http://i.stack.imgur.com/MPbR3.jpg
J'ai trouvé un moyen de faire cela avec une condition. C'est moche et hacky, mais ça marche (pour moi). first
est ce que le PO voulait, mais cela répond plus précisément à la question.
Compte tenu de ceci:
obj = {
'children': [
{ 'possessions' : { 'toys': [] } },
{ 'possessions' : { 'toys': ['train'] } }
{ 'possessions' : { 'toys': ['train', 'ball'] } }
]
}
Je voulais savoir si mon obj a des enfants avec des biens qui sont des jouets.
if ([child for child in obj.children if child.possessions.toys]):
# Whatever
Mon approche consistait à utiliser regroup
pour créer des ensembles de candidats qui correspondaient ou non aux critères:
{% regroup obj.children by possessions.toys|length_is:"0" as by_toys %}
{% for check in by_toys %}{% if check.grouper == False %}
Whatever
{% endif %}{% endfor %}
regroup
construit un nouvel objet qui est essentiellement:
[
{ 'grouper': '', 'list': [/*...*/] },
{ 'grouper': True, 'list': [/*...*/] },
{ 'grouper': False, 'list': [/*...*/] }
]
Le length_is:"0"
s'assure que nous avons au plus trois éléments dans cette liste et que la grouper
est soit True
ou False
ou ''
. Ensuite, nous parcourons la liste et recherchons une valeur False
.
if
ne sera jamais touchée.False
grouper
.False
grouper
.False
et True
grouper
s.Dans ce cas, vous pouvez vérifier si forloop.counter == 1 ou si forloop.first et simplement imprimer ce premier élément.
{% for account in object_list %}
{% if forloop.first %}
<tr>
{% for field, value in book.get_fields %}
<th>{{ field.verbose_name }}</th>
{% endfor %}
</tr>
{% endif %}
{% endfor %}
Vous pouvez utiliser votre système de gabarits Django pour une boucle en javascript pour une boucle en tant que boucle intérieure et vous pouvez utiliser une rupture comme suit: -
for(var i=0;i<1;i++){
{% for owner in Owner %}
id = "{{owner.id}}";
if(id == pk1){
f="{{owner.flat}}";
break;
}
{% endfor %}
}