为什么我得到一个对象不是可迭代的错误?

时间:2010-08-07 04:00:33

标签: django

为什么我的应用中出现以下错误

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

但是当我从shell执行它时我没有得到它?

我的表单中只有一个自定义字段,它继承自forms.ModelForm

custom_serving_size = forms.ChoiceField(
    ServingSize.objects.all(),
    widget=forms.Select(attrs={'class':'ddl'})
)

修改

这是我的表单类

class RecipeIngredientForm(forms.ModelForm):
    serving_size = forms.ChoiceField(choices=ServingSize.objects.all())

错误发生在ServingSize.objects.all()

1 个答案:

答案 0 :(得分:11)

custom_serving_size = forms.ChoiceField(
    ServingSize.objects.all(),
    widget=forms.Select(attrs={'class':'ddl'})
)

这必须是

custom_serving_size = forms.ModelChoiceField(
    queryset=ServingSize.objects.all(),
    widget=forms.Select(attrs={'class':'ddl'})
)

custom_serving_size = forms.ChoiceField(
    choices=[(obj.id, `text user sees`) for obj in ServingSize.objects.all()],
    widget=forms.Select(attrs={'class':'ddl'})
)