我有这些模特:
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'
此方法应返回此类别的帖子数。
我该怎么办?
答案 0 :(得分:9)
由于您已指定related_name
,因此Django不会自动为post_set
创建相关名称。使用:
def get_number_of_categorys_items(self):
return self.blog_category.count()
或者,不要指定related_name
:
category = models.ForeignKey(BlogCategory)