我使用了来自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
答案 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版本。