【发布时间】:2020-10-25 09:40:51
【问题描述】:
我需要一个类似的 Django 模板
“第一个博客标题”-(“第一个博客的评论数”)
“第二个博客标题”-(“第二个博客的评论数”)
最简单的方法是什么? 我试图在我的views.py 中创建一个上下文,它同时来自博客模型和评论模型,因为变量属于不同的模型。然后我需要将两个变量都放入我的 html 中的 for 循环中,但结果是一个嵌套循环。所以我没有得到我想要的样子。
我对各种解决方案持开放态度,不仅来自后端,还来自前端
谢谢
我更新了我的问题并添加了我的模型和视图
class Author(models.Model):
name = models.CharField(max_length=100)
surname = models.CharField(max_length=100)
email = models.EmailField()
def __str__(self):
self.name
class Blog(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
heading = models.CharField(max_length= 255)
text = models.CharField(max_length= 5000)
def __str__(self):
self.name
class Comment(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='comments')
author = models.CharField(max_length=100)
text_comment = models.CharField(max_length=2000)
def index(request):
blogs = Blog.objects.all
comments = Blog.objects.annotate(number=Count('comments'))
context = {'blog':blogs, 'comments':comments}
return render(request, 'blog/index.html', context)
模板(不起作用)
{% for blog in blogs %}
{% for comment in comments %}
{{ blog.heading }} {{ comment.number }}
{% endfor %}
{% endfor %}
非常感谢
【问题讨论】:
-
博客和cmets有关系吗?你能分享你的models.py吗?
标签: django django-models django-templates