James Bennett の役立つ投稿http://www.b-list.org/weblog/2008/nov/09/dynamic-forms/の最後に記載されているように、動的フォームを作成するためのファクトリ関数を作成しました。
フォームは完璧に機能しますが、辞書であるという事実のために (私は推測します)、アイテムはややランダムに見える順序で表示されfields
ます (以下のコード サンプルを参照してください)。フォーム フィールドの表示順序を定義するにはどうすればよいですか?
def make_form(assessment):
'''
Factory function to build and return dynamic AssessmentForms
'''
entries = assessment.entry_set.all()
fields = {}
for entry in entries:
fields[entry.name] = forms.ChoiceField(
required=False,
initial=entry.rating,
choices=CHOICES,
widget=forms.RadioSelect()
)
return type('AssessmentForm', (forms.BaseForm,), { 'base_fields': fields })