Django:ModelMultipleChoiceField 显示描述与对象
我想把ModelMultipleChoiceFields显示成多选框。现在虽然能显示出复选框,但上面显示的是对象本身。我希望能显示对象的描述,这样用户就知道自己在选择什么了。
我该怎么遍历foodstyles来提取这些数据呢?我试过这样做,但出现了一个TemplateSyntaxError的错误,提示“在渲染时捕获到AttributeError:'generator'对象没有'all'属性”。
foodstyles = forms.ModelMultipleChoiceField(
label=_("Types of food you like"),
widget=forms.CheckboxSelectMultiple, queryset=FoodStyle.objects.all(),
required=True)
def __init__(self, *args, **kwargs):
super(ProfileForm, self).__init__(*args, **kwargs)
foodstyles = FoodStyle.objects.all()
self.fields['foodstyles'].queryset = (
(r.description) for r in foodstyles)
1 个回答
3
听起来你需要在你的模型对象上实现一个叫unicode(self)的功能,然后返回你想在表单中显示的字符串。