Django ManyToManyField информация из связанной модели в шаблоне

Подскажите, пожалуйста, как вывести информацию из связанной модели в шаблоне?

models

class Cars(models.Model):
brand = models.CharField(max_length=30)

class Engine(models.Model):
engine = models.CharField(max_length=30)
cars = models.ManyToManyField(Cars, verbose_name="cars", related_name='cars_rn')

views

class EngineView(DetailView):
model = Engine
template_name = 'cars/engine_detail.html'
slug_field = 'engine_url'

template

{% block content %}

{{ engine.engine }} <! -- Работает -->

{% for car in engine.cars_rn.all %} 
   {{ car.brand }} <! -- Не работает -->
{% endfor %}

{% endblock content %}

Ответы (1 шт):

Автор решения: Muck Son

Вы не поняли логику related_name. В related_name вы указываете имя "обратного обращения", то есть из Cars к Engine. Таким образом, ваш класс Engine должен выглядеть так:

class Engine(models.Model):
engine = models.CharField(max_length=30)
cars = models.ManyToManyField(Cars, verbose_name="cars", related_name='engines')

Теперь вы можете писать так:

car.engines.all()

И это будет работать.

Чтобы сделать выборку всех Car из Engine, нужно писать так:

{% for car in engine.cars.all %} 
    {{ car.brand }}
{% endfor %}
→ Ссылка