2010-05-03 5 views
42

से ऑब्जेक्ट्स सूचीबद्ध करना मैं सभी सम्मेलनों की एक सूची मुद्रित करने की कोशिश कर रहा हूं और प्रत्येक सम्मेलन के लिए, अपने 3 स्पीकर प्रिंट करें।कईToManyField

मेरे टेम्पलेट में मेरे पास है:

{% 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}) 

एक मॉडल सम्मेलन नामित है। {% for speakers in conference.speakers %}

उत्तर

80

आप कई पर all कॉल करने की आवश्यकता:

Caught an exception while rendering: 'ManyRelatedManager' object is not iterable 

इस लाइन के साथ: जो एक वर्ग नामित सम्मेलन एक ManyToManyField नामित वक्ताओं के साथ

मैं त्रुटि मिलती है एक पुनरावृत्त वस्तु पाने के लिए कई क्षेत्रों में। इसके अलावा, अगली पंक्ति में conference.speakers की बजाय स्पीकर होना चाहिए।

{% for speaker in conference.speakers.all %} 
     <li>{{ speaker }}</li> 
{% endfor %} 
+0

आपको बहुत बहुत धन्यवाद :) के रूप में मैं सोच रहा था अब तक नहीं था! –

+0

क्या होगा यदि मेरे विचार में मैं ManyRelatedManager को किसी क्वेरी में पास करने के लिए एक सूची में बदलना चाहता हूं? – EduardoMaia

12

इसी प्रकार के अंदर pythoncode इस होगा:

for speaker in conferenece.speakers.all(): 
    print speaker.FIELDNAME