2015-12-24 150 views
3

我有這些模型:對象沒有屬性_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'

這個方法應該返回崗位的數量與這個類別。

我該怎麼辦?

回答

6

由於您指定了related_name,因此Django不會自動爲您創建相關名稱post_set。無論是使用:

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

或者,不指定related_name

category = models.ForeignKey(BlogCategory) 
+0

謝謝!有用! –

相關問題