我在通过 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 %}