使用admin获取django-taggit错误

时间:2013-02-28 21:33:28

标签: python django python-2.7

在Django项目中我安装了django_taggit。我在syncdb项目时收到此错误。

AttributeError: 'TaggableManager' object has no attribute 'related'

我的models.py是这样的......

from taggit.managers import TaggableManager

class Post(models.Model):
    title = models.CharField(max_length=100)
    tags = TaggableManager()

和admin.py这样......

from django.contrib import admin

admin.site.register(Post)

1 个答案:

答案 0 :(得分:1)

Django管理员正在尝试使用TaggableManager来管理您的帖子对象。使用自定义管理器时需要小心;如the docs指定:

  

如果您使用自定义管理器对象,请注意第一个管理器Django遇到(按照它们在模型中定义的顺序)具有特殊状态。 Django将类中定义的第一个Manager解释为“默认”管理器,Django的几个部分(包括dumpdata)将专门为该模型使用该Manager。因此,在选择默认管理器时要小心谨慎,以避免重写get_query_set()导致无法检索您想要使用的对象。

解决此问题的一种简单方法是首先手动指定Post.objects

class Post(models.Model):
    title = models.CharField(max_length=100)
    objects = models.Manager()
    tags = TaggableManager()