我有两个模型,分类和主题。每个主题属于一个类别(通过外键)。我想在模板中做的是显示一个类别,然后在其下面显示已在该特定类别下提交的所有主题。这是我的models.py:
class Category(models.Model):
name = models.CharField(max_length=55)
class Topic(models.Model):
category = models.ForeignKey(Category)
name = models.CharField(max_length=55)
关于如何实现这一目标的任何想法?谢谢。
答案 0 :(得分:1)
如评论中所述,您希望向后关注这种关系。
在您看来,您需要将类别传递给模板,例如:
from django.views.generic import TemplateView
from .models import Category
class MyView(TemplateView):
template_name = 'path/to/my/template.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['categories'] = Category.objects.all()
return context
然后在您的模板中,您可以按如下方式实现:
{% for category in categories %}
<h3>{{ category.name }}</h3>
<ul>
{% for topic in category.topic_set.all %}
<li>{{ topic.name }}</li>
{% endfor %}
</ul>
{% endfor %}