【问题标题】:Why do I get an object is not iterable error?为什么我得到一个对象不可迭代的错误?
【发布时间】:2011-03-26 15:18:56
【问题描述】:

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

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()

【问题讨论】:

    标签: django


    【解决方案1】:
    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'})
    )
    

    【讨论】:

    • 在这种情况下最好使用forms.ModelChoiceField(queryset=....)
    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2017-08-25
    相关资源
    最近更新 更多