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

我正在 Django 中创建一个论坛软件,但我很难弄清楚如何将论坛表与类别相关联。我想将其显示到索引页:


Category 1

 --forum 1

 --forum 2

 --forum 2


Category 2

 --forum 1

 --forum 2

 --forum 3

这些是我的模型:


class Category(models.Model):

    name = models.CharField(max_length=255)


    def __str__(self):

        return self.name



class 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 %}

我该如何解决这个问题,使其正确显示并且关系正确?一个类别可以有多个论坛,但一个论坛只能有一个类别。所以我相信是一对多的关系。


芜湖不芜
浏览 77回答 1
1回答

MMTTMM

这很简单:{% for category in categorys %}    {{ category.name }}    {% for forum in category.forums.all %}      {{ forum.name }}    {% endfor %} {% endfor %}另外,您不需要传递forums上下文变量(通过get_context_data方法)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python