У меня проблемы с доступом к данным через отношения django один ко многим. После 3 кропотливых дней я нашел способ отобразить данные отношения, переопределив метод get_context_data. Мне было интересно, если это был правильный способ сделать это. Это работает, но я могу представить, что есть лучший способ сделать это, который я пропустил в документации.
Вот код для этого:
class QuestionDetailView(DetailView):
model = Question
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['answers'] = Answer.objects.filter(firm=context['object'])
return context
Вот код для модели:
class Question(models.Model):
text = models.CharField(max_length=120, unique=True)
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
Вот код в моем шаблоне:
{% extends "base.html" %}
{% block body %}
<div class="">
<h3>{{ object.text }}</h3>
<p>Answers:</p>
<ul>
{% for answer in answers %}
<li> {{ answer }}</li>
{%empty%}
<li>No answers</li>
{% endfor %}
</ul>
</div>
{% endblock %}