0

I have a form in my django project with a ModelMultipleChoiceField rendered as a CheckboxSelectMultiple widget:

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

I'm using django uni-form to render this form to the page:

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

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

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

However, when django uni-form tries to render the field I get the following error:

Caught TypeError while rendering: 'ManyRelatedManager' object is not iterable

I know the usual problem with this error is forgetting to call .all() on the manager, however this is being called by django uni-form. Is this a problem with django uni-form or am I doing something wrong?

Community
  • 1
  • 1
arknotts
  • 454
  • 3
  • 13
  • It could be a problem inside your model. Try to look at methods like __unicode__ that are called implicitly. – benjaoming Sep 25 '11 at 16:20

1 Answers1

0

I solved my issue. The problem was when I was prepopulating the data, I was passing event.event_types (a manager instance) rather than event.event_types.all().

arknotts
  • 454
  • 3
  • 13