【问题标题】:'FavoriteManager' object has no attribute 'get_query_set'“FavoriteManager”对象没有属性“get_query_set”
【发布时间】:2016-04-17 22:10:34
【问题描述】:

我正在使用来自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 更改为Post。但即使在更改后,我也会遇到同样的错误。这是怎么回事?

这是最喜欢的应用程序中的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

【问题讨论】:

  • 每次我得到新的编辑,我就像哦,我终于得到了一些通知,也许这会被修复,我看到编辑然后我就像哦.....:)
  • 为什么一直在编辑这并没有真正帮助但没有得到回答!!!

标签: python django


【解决方案1】:

此问题与 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 版本。

【讨论】:

  • 谢谢你,我在谷歌上搜索每一个网站。我还想用这个又不想降级,有没有办法?
  • 好吧,你需要为此重写django-favorites,因为它与最新的Django版本不兼容。
  • 顺便说一句,我不应该将 obj 更改为我想要使用 fav_tag 的模型吗?
  • 难道我只需要用替换 get_query_set 的一些命令替换 get_query_set 吗?
  • 您可以在模型中将get_query_set 替换为get_queryset。这应该可以解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-17
相关资源
最近更新 更多