列出ManyToManyField中的对象

Noa*_*dja 50 django many-to-many django-templates

我正在尝试打印所有会议的清单,并为每个会议打印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 %}
Run Code Online (Sandbox Code Playgroud)

在我的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})
Run Code Online (Sandbox Code Playgroud)

有一个名为会议的模型.它有一个名为Conferences的类,其中有一个名为扬声器ManyToManyField

我收到错误:

Caught an exception while rendering: 'ManyRelatedManager' object is not iterable
Run Code Online (Sandbox Code Playgroud)

用这一行: {% for speakers in conference.speakers %}

int*_*jay 96

您需要调用all多对多字段来获取可迭代对象.另外,下一行应该包含扬声器而不是conference.speakers.

{% for speaker in conference.speakers.all %}
        <li>{{ speaker }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)


Ric*_*son 16

类似于pythoncode,这将是:

for speaker in conferenece.speakers.all():
  print speaker.FIELDNAME
Run Code Online (Sandbox Code Playgroud)