我正在 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 %}
我该如何解决这个问题,使其正确显示并且关系正确?一个类别可以有多个论坛,但一个论坛只能有一个类别。所以我相信是一对多的关系。
MMTTMM
相关分类