' FavoriteManager'对象没有属性' get_query_set'

时间:2016-01-13 03:58:03

标签: python django

我使用了来自https://bitbucket.org/last_partizan/django-favorites/overview的django-favorites,我设置了一切正确,当我运行代码时,它给了我'FavoriteManager'对象没有属性'get_query_set'。该行中的django-favorites models.py发生错误

qs = self.get_query_set().filter(content_type=content_type, object_id=obj.pk)

所以我想,我需要指定对象。因此,我尝试将fav button用于我的所有Post,因此我需要将obj更改为发布。但即使改变后我也会得到同样的错误。这是怎么回事?

这是models.py最喜欢的应用内,其中发生了错误

def favorites_for_object(self, obj, user=None):
       """ Returns Favorites for a specific object """
       content_type = ContentType.objects.get_for_model(type(obj))
       qs = self.get_query_set().filter(content_type=content_type, 
                                         object_id=obj.pk)
       if user:
           qs = qs.filter(user=user)

       return qs

这是我打电话给fav_item

的地方
<div class="actions">{% fav_item post user %}</div>

假设我想将fav_item放在我的类别模型上

class Category(models.Model): 
    name = models.CharField(max_length=128, unique=True)
    slug = models.CharField(max_length=100, unique=True)
    author = models.OneToOneField(settings.AUTH_USER_MODEL, unique=True)
    def save(self, *args, **kwargs):
        self.slug = uuslug(self.name,instance=self, max_length=100)
        super(Category, self).save(*args, **kwargs)

    def __unicode__(self): 
        return self.name

然后导入没有意义 main.models导入类别 并将obj切换到Category。不幸的是,这里没有太多文档:https://bitbucket.org/last_partizan/django-favorites/overview

1 个答案:

答案 0 :(得分:2)

此问题与Django版本有关。方法get_query_set已从Django 1.8.x中删除。在此之前,RenameManagerMethods使用了此方法。检查此github源:https://github.com/django/django/blob/stable/1.7.x/django/db/models/manager.py#L56

同样django-favorites最后一次更新是在2013年,正如我从源头上看到的那样。你应该考虑降级你的Django版本。