如何列出与之相关的类别和论坛? Django的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何列出与之相关的类别和论坛? Django的相关的知识,希望对你有一定的参考价值。
模型
class Category(models.Model):
class Meta():
verbose_name_plural = "Categories"
cat_name = models.CharField(max_length=50)
description = models.TextField()
def get_forums(self):
get_forum = Forum.objects.filter(category=self)
return get_forum
def __str__(self):
return f"{self.cat_name}"
class Forum(models.Model):
class Meta():
verbose_name_plural = "Forums"
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="forums")
parent = models.ForeignKey('self', blank=True, null=True, on_delete=models.CASCADE)
forum_name = models.CharField(max_length=50)
description = models.TextField()
def __str__(self):
return f"{self.forum_name}"
查看
class Home(ListView):
model = Category
template_name = 'forums/index.html'
context_object_name = 'category'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['cat'] = Category.objects.all()
return context
HTML
{% block content %}
{% for cat in category %}
<div class="row">
<div class="bg-success rounded-top border border-dark" style="width:100%; padding-left:8px;">
{{cat.cat_name}}
</div>
</div>
<div class="row">
<div class="bg-secondary border border-dark" style="width:100%; padding-left:16px;">
Forums_Go_Here
</div>
</div>
{% endfor %}
{% endblock content %}
我正在尝试获得一个主页,我可以在其中列出我的类别并在这些类别中显示论坛。我的模板正在运行一个循环遍历所有类别的for循环。在shell中,我能够使用:Category.objects.get(pk = 2).get_forums()命令获取论坛。但这将它限制在一个类别。
答案
您可以使用相关名称,无需使用其他方法:
{% block content %}
{% for cat in category %}
<div class="row">
<div class="bg-success rounded-top border border-dark" style="width:100%; padding-left:8px;">
{{cat.cat_name}}
</div>
</div>
{% for forum in cat.forums.all %}
<div class="row">
<div class="bg-secondary border border-dark" style="width:100%; padding-left:16px;">
{{forum.forum_name}}
</div>
</div>
{% endfor%}
{% endfor %}
{% endblock content %}
你也有错误:
context['category'] = Category.objects.all()
如果你想在模板中使用category
来访问它,请将其放在那里,而不是cat
。
以上是关于如何列出与之相关的类别和论坛? Django的的主要内容,如果未能解决你的问题,请参考以下文章