@NerVik

Как в django CVB ListView вывести данные из другой модели?

есть две модели:

class ModelA(models.Model):
    model_b = models.ForeignKey('ModelB')
    ch_field0 = models.ImageField()


class ModelB(models.Model):
    ch_field1 = models.CharField()


и простая CBV вьюха:

class BooksList(ListView):
    model = ModelB


вопрос: как в этой чертовой вьюхе вывести изображение из ModelA?

в DetailView это было бы просто:

def get_context_data(self, **kwargs):
        context = super(__class__, self).get_context_data(**kwargs)
        context['mb'] = ModelB.objects.get(id=self.object.id).modela_set.all()
        return context

по сути нужно тоже самое, только для ListView, но голова уже не варит ;(
  • Вопрос задан
  • 570 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Контекст в шаблон передаете?
Так нужный контекст уже и так в шаблон улетает:

{% for obj in objects_list %}
   {% for img in obj.modela_set.all %}
      {{ img }}
   {% endfor %}
{% endfor %}


Если это нужно делать именно во вьюхе - получайте список объектов в get_queryset(), и там добавляйте какие угодно поля.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы