为了账号安全,请及时绑定邮箱和手机立即绑定

设置类别和论坛并循环播放

设置类别和论坛并循环播放

芜湖不芜 2023-08-08 15:48:37
我正在 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方法)。


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信