0

我的 django 项目中有一个表单,其中 ModelMultipleChoiceField 呈现为 CheckboxSelectMultiple 小部件:

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

我正在使用 django uni-form 将此表单呈现到页面:

@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”对象不可迭代

我知道这个错误的常见问题是忘记在 manager 上调用 .all(),但是这是由 django uni-form 调用的。这是 django uni-form 的问题还是我做错了什么?

4

1 回答 1

0

我解决了我的问题。问题是当我预填充数据时,我传递的是 event.event_types(一个管理器实例)而不是 event.event_types.all()。

于 2011-10-02T02:13:20.200 回答