sとsdjango1.4
を表示するアプリを作成しています。ユーザーがを選択できるビューを表示したいと思います。編集ページが表示されると、レッスンに関連付けられているコースがデフォルトで選択された状態で表示されます。Lesson
Course
edit_lesson
Course
このようなビューを書いてみました
def get_form_data(request):
return request.POST if request.method == 'POST' else None
def edit_lesson(request,id,template_name):
lesson = get_object_or_404(Lesson,pk=id,author=request.user)
form_data = get_form_data(request)
course_choices_form = CourseChoicesForm(form_data)
...
context = {'course_choices_form':course_choices_form,...}
if request.method == 'POST' and ....:
...
#if GET method ,display the form with initial data
course_choices_form = CourseChoicesForm(initial={'courseoption':lesson.course})
context.update({'course_choices_form':course_choices_form})
print "context['course_choices_form'].initial=",context['course_choices_form'].initial
return custom_render(request,context,template_name)
CourseChoicesFormは次のようなものです
class CourseChoicesForm(forms.Form):
courseoption = forms.ChoiceField(choices=[],required=False,label='Course')
def __init__(self, *args, **kwargs):
super(CourseChoicesForm, self).__init__(*args, **kwargs)
self.fields['courseoption'].choices = [(x.id,x.title) for x in Course.objects.all()]
edit_lessonテンプレートでは、course_choices_formを次のように表示しています。
{{ course_choices_form.as_p}}
それでも、ドロップダウンリストにはレッスンのコースは表示されませんが、Course.objects.all()の最初のエントリのみが表示されます。
誰かが私が間違っていることを教えてもらえますか?