为什么我得到一个对象不是迭代错误? [英] Why do I get an object is not iterable error?
本文介绍了为什么我得到一个对象不是迭代错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么我的应用程序中出现以下错误
在呈现时捕获TypeError:'ModelNameHere'对象不可迭代
但是当我从shell执行它时,我没有得到它?
我刚刚有一个自己的表单,继承自form.ModelForm
custom_serving_size =表单中的自定义字段.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()
解决方案
custom_serving_size = forms.ChoiceField(
ServingSize.objects.all(),
widget = forms 。选择(ATTRS = {'class':'ddl'})
)
这必须是
custom_serving_size = forms.ModelChoiceField(
queryset = ServingSize.objects.all(),
widget = forms 。选择(attrs = {'class':'ddl'})
)
custom_serving_size = forms.ChoiceField(
pre>
choices = [(obj.id,'text user seen`)for obj在服务容器中,在ServingSize.objects.all()],
widget = forms.Select(attrs = {'class':'ddl'})
)
Why do I get the following error in my app
Caught TypeError while rendering: 'ModelNameHere' object is not iterable
but I don't get it when I execute it from the shell?
I just have a custom field in my form which inherits from forms.ModelForm
custom_serving_size = forms.ChoiceField( ServingSize.objects.all(), widget=forms.Select(attrs={'class':'ddl'}) )
EDIT
This is my form class
class RecipeIngredientForm(forms.ModelForm): serving_size = forms.ChoiceField(choices=ServingSize.objects.all())
The error happens on ServingSize.objects.all()
解决方案custom_serving_size = forms.ChoiceField( ServingSize.objects.all(), widget=forms.Select(attrs={'class':'ddl'}) )
this has to be
custom_serving_size = forms.ModelChoiceField( queryset=ServingSize.objects.all(), widget=forms.Select(attrs={'class':'ddl'}) )
or
custom_serving_size = forms.ChoiceField( choices=[(obj.id, `text user sees`) for obj in ServingSize.objects.all()], widget=forms.Select(attrs={'class':'ddl'}) )
这篇关于为什么我得到一个对象不是迭代错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文