Django ModelMultipleChoiceField: перебор данных - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь отобразить данные из 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 голосов
/ 29 января 2011

Вы не можете использовать поля формы внутри модели. Вместо этого сделайте внешний ключ от еды шеф-повару.

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

Конечно, вместо внешнего поля могут быть множественные отношения между шеф-поваром и едой. Измените код соответствующим образом.

...