すべての会議のリストを印刷しようとしています。各会議について、3人のスピーカーを印刷しようとしています。
私のテンプレートには次のものがあります:
{% 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 %}
私のviews.pyファイルには:
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})
conferenceという名前のモデルがあります。 会議というクラスと、ManyToManyFieldという名前のクラスがあり、スピーカー
エラーが表示されます:
Caught an exception while rendering: 'ManyRelatedManager' object is not iterable
この行で:{% for speakers in conference.speakers %}
反復可能なオブジェクトを取得するには、多対多フィールドでall
を呼び出す必要があります。また、次の行にはconference.speakers
ではなくスピーカーが含まれている必要があります。
{% for speaker in conference.speakers.all %}
<li>{{ speaker }}</li>
{% endfor %}
同様のpythoncode内部は次のようになります。
for speaker in conferenece.speakers.all():
print speaker.FIELDNAME