0

djangoプロジェクトに、ModelMultipleChoiceFieldがCheckboxSelectMultipleウィジェットとしてレンダリングされたフォームがあります。

class EventCreateForm(forms.Form):
    ...
    event_types = forms.ModelMultipleChoiceField(EventType.objects.all(), widget=forms.CheckboxSelectMultiple())
    ...

このフォームをページにレンダリングするためにdjangoユニフォームを使用しています:

@property
def helper(self):
    helper = FormHelper()

    submit = Submit('submit', 'Submit')
    helper.add_input(submit)

    helper.form_action = ''
    helper.form_method = 'POST'
    return helper

ただし、django uni-formがフィールドをレンダリングしようとすると、次のエラーが発生します。

レンダリング中にTypeErrorをキャッチしました:'ManyRelatedManager'オブジェクトは反復可能ではありません

このエラーの通常の問題は、マネージャーで.all()を呼び出すのを忘れることですが、これはdjangouni-formによって呼び出されています。これはdjangoユニフォームの問題ですか、それとも何か間違ったことをしていますか?

4

1 に答える 1

0

問題を解決しました。問題は、データを事前入力しているときに、event.event_types.all()ではなくevent.event_types(マネージャーインスタンス)を渡していたことでした。

于 2011-10-02T02:13:20.200 に答える