2015-12-24 4 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

Спасибо! Оно работает! –

Смежные вопросы