2010-08-07 5 views
6

Pourquoi ai-je l'erreur suivante dans mon applicationPourquoi est-ce que je reçois un objet n'est pas une erreur itérable?

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

mais je ne comprends pas quand je l'exécute de la coquille?

J'ai juste un champ personnalisé dans ma forme qui hérite de forms.ModelForm

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

EDIT

C'est ma forme de classe

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

L'erreur se produit sur ServingSize .objects.all()

Répondre

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

cela doit être

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

ou

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