【问题标题】:Count number of post in a category计算类别中的帖子数
【发布时间】:2020-03-14 18:10:23
【问题描述】:

我想列出我的新闻表中的所有类别,并添加每个类别中的帖子数。 这是我的模型:

class Blog(models.Model):
    titre_article = models.CharField(max_length=255)
    auteur_article = models.ForeignKey(User, on_delete=models.CASCADE)
    date_article = models.DateTimeField(auto_now_add=True)
    modif_article = models.DateTimeField(auto_now=True)
    categorie_article = models.ForeignKey('BlogCat',
                                       on_delete=models.CASCADE,
                                       default='1')
    contenu = RichTextField(null=False)

    def __str__(self):
        return self.titre_article


    def get_absolute_url(self):
        return f"/blog/{self.id}"

class BlogCat(models.Model):
    nom_categorie = models.CharField(max_length=255)

    def __str__(self):
        return self.nom_categorie

    def get_absolute_url(self):
        return f"/blog/cat/{self.nom_categorie}"

从那里我无法想象 view.py 中的代码应该是什么。 有人可以帮忙吗?

非常感谢:)

杰夫

【问题讨论】:

    标签: django database filter count


    【解决方案1】:

    您可以使用Blogs 的数量来注释您的BlogCat 模型:

    from django.db.models import Count
    
    BlogCat.objects.annotate(nblog=Count('blog'))

    this 查询集产生的BlogCat 对象将有一个额外的属性.nblog,其中包含相关Blog 对象的数量。

    【讨论】:

      【解决方案2】:

      你必须使用 cout()

      obj = YourObject.objects.all().count()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-24
        • 2012-03-30
        • 1970-01-01
        • 2019-02-26
        • 2021-12-14
        • 2020-12-04
        相关资源
        最近更新 更多