我有这些模型:
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'对象没有属性'post_set'
此方法应返回此类别的帖子数.
我能做什么?
由于您已经指定了related_name
,因此Django不会自动post_set
为您创建相关名称.使用:
def get_number_of_categorys_items(self): return self.blog_category.count()
或者,不要指定related_name
:
category = models.ForeignKey(BlogCategory)