Django ModelMultipleChoiceField:遍历数据
我正在尝试显示一个ModelMultipleChoiceField中的数据,已经尝试过遍历这些对象,但结果有点奇怪。谢谢大家的帮助!
{{ chef.meal }}
渲染结果
[<Meal: Breakfast>, <Meal: Brunch>]
--
{% for i in chef.meal%} {{i}} {% endfor %}
渲染结果
[ < M e a l : B r e a k f a s t > , < M e a l : B r u n c h > ]
这是我设置ModelMultipleChoiceField的方式:
meal = forms.ModelMultipleChoiceField(
label=_("What is your best meal?"),
queryset=Meal.objects.all(),
required=True)
还有Meal模型:
class Meal(models.Model):
name = models.CharField(max_length=10)
def __unicode__(self):
return "%s" % self.name
HttpResponse:
data = {"profile":profile,
"chef":chef}
return render_to_response(template_name,
data,
context_instance=RequestContext(request))
我把'chef'传递给模板,然后从Chef对象中提取了餐点。
1 个回答
0
你不能在模型里面使用表单字段。相反,你应该在餐点(meal)和厨师(Chef)之间建立一个外键关系。
class Meal(models.Model):
name = models.CharField(max_length=10)
chef = models.ForeignKey(Chef)
def __unicode__(self):
return "%s" % self.name
现在在模板里面使用
{% for meal in chef.meal_set.all %}
{{ meal }}
{% endfor %}
当然,除了外键关系,厨师和餐点模型之间还可以有多对多的关系。你需要相应地修改代码。