为什么我得到一个对象不是迭代错误? [英] Why do I get an object is not iterable error?

查看:102
本文介绍了为什么我得到一个对象不是迭代错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

 在呈现时捕获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(
choices = [(obj.id,'text user seen`)for obj在服务容器中,在ServingSize.objects.all()],
widget = forms.Select(attrs = {'class':'ddl'})

pre>

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆