【发布时间】:2011-10-26 14:34:56
【问题描述】:
我有以下表格:
class FeaturedVideoForm(ModelForm):
featured_video = forms.ModelChoiceField(Video.objects.none()
widget=make_select_default,
required=False,
empty_label='No Featured Video Selected')
class Meta:
model = UserProfile
fields = ('featured_video',)
def __init__(self, userprofile, *args, **kwargs):
videos_uploaded_by_user=list(userprofile.video_set.all())
credits_from_others=[video.video for video in userprofile.videocredit_set.all()]
all_credited_videos=list(set(videos_uploaded_by_user+credits_from_others))
super(FeaturedVideoForm, self).__init__(*args, **kwargs)
self.fields['featured_video'].choices = all_credited_videos
我在构造函数的最后一行之后使用了一个打印语句来确认它正在返回正确的视频列表,并且确实如此。但是,我很难在模板中显示它。
我试过了:
{% for video in form.featured_video.choices %}
<option value="{{video}}">{{video}}</option>
{% endfor %}
返回一个空的选择集。
我已经试过了:
{{form.featured_video}}
这给了我TemplateSyntaxError at /profile/edit/featured_video/.
Caught TypeError while rendering: 'Video' object is not iterable.
如何正确呈现此 Select 表单?谢谢。
【问题讨论】:
标签: django django-templates django-forms