我正在 Django 中创建一个论坛软件,但我很难弄清楚如何将论坛表与类别相关联。我想将其显示到索引页:Category 1 --forum 1 --forum 2 --forum 2Category 2 --forum 1 --forum 2 --forum 3这些是我的模型:class Category(models.Model): name = models.CharField(max_length=255) def __str__(self): return self.nameclass Forum(models.Model): name = models.CharField(max_length=255) description = models.CharField(max_length=255) category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='forums') def __str__(self): return self.name以下是我的看法:class HomeView(ListView):context_object_name = 'name'template_name = 'index.html'def get_context_data(self, *args, **kwargs): context = super(HomeView, self).get_context_data(*args, **kwargs) context['forums'] = Forum.objects.all() context['categorys'] = Category.objects.all() return context这就是我目前在主页上的内容,唯一的问题是,它只是循环遍历所有类别和论坛。我希望该类别在第一个 for 循环中循环,并在第二个 for 循环中循环拉出属于该类别的所有论坛。{% for category in categorys %} --code {% for forum in forums %} --code {% endfor %}{% endfor %}我该如何解决这个问题,使其正确显示并且关系正确?一个类别可以有多个论坛,但一个论坛只能有一个类别。所以我相信是一对多的关系。
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
这很简单:
{% for category in categorys %} {{ category.name }} {% for forum in category.forums.all %} {{ forum.name }} {% endfor %} {% endfor %}
另外,您不需要传递forums
上下文变量(通过get_context_data
方法)。
添加回答
举报
0/150
提交
取消