我是Django的新手
我有包含类别的表Category
class Category(models.Model):
category = models.CharField(max_length=100)
def __str__(self):
return self.category
class Meta:
verbose_name_plural = "categories"
以及使用“类别”表作为外键的表“ Post”
class Post(models.Model):
title = models.CharField(max_length=100)
category = models.ForeignKey(Category, on_delete=models.CASCADE )
content = RichTextUploadingField()
date_posted = models.DateTimeField(default=timezone.now)
但是使用下面的查询我得到的是
Post.objects.values('category').order_by('category').annotate(the_count=Count('category'))
结果
<QuerySet [{'category': 2, 'the_count': 5}, {'category': 3, 'the_count': 4}]>
我想要的是
<QuerySet [{'category': "fashion", 'the_count': 5}, {'category': "travel", 'the_count': 4}]>
我该如何解决这个问题
谢谢!
答案 0 :(得分:3)
您需要在查询中指定字段,然后访问模板上的那些“值”。
views.py
posts = Post.objects.values('category__category').order_by('category').annotate(the_count=Count('category'))
template.html
{% for post in posts %}
{{ post.category__category }} - {{ post.the_count }}
{% endfor %}