Django ModelMultipleChoiceField:迭代数据

时间:2011-01-29 00:54:30

标签: python django django-models django-forms

我正在尝试显示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)

和膳食模型:

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对象中取出食物。

1 个答案:

答案 0 :(得分:0)

您无法在模型中使用表单字段。而是从饭菜到厨师制作外键。

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 %}

当然,厨师和餐饮模型之间可能存在多重关系,而不是外国领域。相应地修改代码。