对象没有属性_set',Django

Object has no attribute _set', Django

我有这些型号:

class BlogCategory(models.Model):
    name = models.CharField(max_length=20)

    def __str__(self):
        return self.name

    def get_number_of_categorys_items(self):
        return self.post_set.count()


class Post(models.Model):
    title = models.CharField(max_length=130)
    content = models.TextField()
    category = models.ForeignKey(BlogCategory, related_name='blog_category')

    def __str__(self):
        return self.title

当我尝试调用方法 get_number_of_categorys_items 时,它导致错误:

AttributeError: 'BlogCategory' object has no attribute 'post_set'

此方法应 return 个具有此类别的帖子。

我能做什么?

由于您指定了 related_name,Django 不会自动为您创建相关名称 post_set。要么使用:

def get_number_of_categorys_items(self):
    return self.blog_category.count()

或者,不指定 related_name:

category = models.ForeignKey(BlogCategory)