J'essaie d'imprimer une liste de toutes les conférences et pour chaque conférence, d'imprimer ses 3 conférenciers.
Dans mon modèle, j'ai:
{% if conferences %}
<ul>
{% for conference in conferences %}
<li>{{ conference.date }}</li>
{% for speakers in conference.speakers %}
<li>{{ conference.speakers }}</li>
{% endfor %}
{% endfor %}
</ul>
{% else %}
<p>No Conferences</p>
{% endif %}
dans mon fichier views.py j'ai:
from Django.shortcuts import render_to_response
from youthconf.conference.models import Conference
def manageconf(request):
conferences = Conference.objects.all().order_by('-date')[:5]
return render_to_response('conference/manageconf.html', {'conferences': conferences})
il existe un modèle nommé conférence. qui a une classe nommée Conferences avec un ManyToManyField nommé speakers
Je reçois l'erreur:
Caught an exception while rendering: 'ManyRelatedManager' object is not iterable
avec cette ligne: {% for speakers in conference.speakers %}
Vous devez appeler all
sur le champ plusieurs-à-plusieurs pour obtenir un objet itérable. En outre, la ligne suivante doit contenir le haut-parleur plutôt que conference.speakers
.
{% for speaker in conference.speakers.all %}
<li>{{ speaker }}</li>
{% endfor %}
Un pythoncode similaire à l'intérieur serait:
for speaker in conferenece.speakers.all():
print speaker.FIELDNAME