Alors, je fais cette application dans django et en utilisant ce code:Django: extrait de requête de modèle ne boucle dans le modèle
Mon étiquette de modèle dans le fichier video_select.py:
@register.assignment_tag
def content_list():
contentlist = vvideo.objects.all()
return contentlist
Mon modèle:
{% load video_select %}
<article id="menu" style="height:80%;">
<h2 class="major">Menu</h2>
<div>
{% for contentt in content_list %} {{ contentt.video_path }} {% endfor %}
</div>
<h2 class="major">End Menu</h2>
</article>
Ceci n'affiche rien. Mais je ne suis pas sûr pourquoi.
A l'inverse, il suffit d'imprimer {% content_list%} n'imprime cette sortie:
[<vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>, <vvideo: vvideo object>]
donc clairement l'étiquette de modèle fonctionne. Mon models.py contient:
class vvideo(models.Model):
video_path = models.CharField(max_length=200, blank=True, null=True)
Ainsi, clairement la référence .video_path est également correcte.
Pouvez-vous m'aider à comprendre pourquoi ma liste n'est pas en boucle & impression? J'ai essayé de l'itérer directement dans le tag du template et ça marche. Cependant, je veux vraiment que la boucle s'exécute dans le template lui-même car j'essaye de créer des liens href pour chaque vidéo. Donc, je dois parcourir toutes les vidéos de la base de données et extraire leurs noms et URL, en créant des liens respectifs. Deux éléments sont requis pour chaque sortie de ligne: il est donc préférable d'envoyer une liste d'objets au modèle et d'extraire l'URL et les noms des vidéos dans une boucle.
Y at-il une chance que toutes vos valeurs de chemin de vidéo sont vides? Je vais essayer {{contentt.id}} et voir si vous obtenez quelque chose –