Ich habe das folgende Formular:
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
Ich habe eine Druckanweisung nach der letzten Zeile des Konstruktors verwendet, um sicherzustellen, dass die korrekte Liste der Videos zurückgegeben wird, und das tut sie auch. Allerdings habe ich Schwierigkeiten, die Liste in der Vorlage anzuzeigen.
Ich habe es versucht:
{% for video in form.featured_video.choices %}
<option value="{{video}}">{{video}}</option>
{% endfor %}
die eine leere Menge von Auswahlmöglichkeiten zurückgibt.
Und ich habe es versucht:
{{form.featured_video}}
das gibt mir TemplateSyntaxError at /profile/edit/featured_video/. Caught TypeError while rendering: 'Video' object is not iterable.
Wie würde ich dieses Select-Formular korrekt darstellen? Ich danke Ihnen.