У меня есть следующая форма:
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.
Как бы я правильно отобразил эту форму выбора?Спасибо.