2013-02-28 106 views
1

在Django项目中,我安装了django_taggit。当我syncdb我的项目时出现此错误。与管理员Django-taggit获取错误

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

Django管理正试图使用​​TaggableManager来管理你的发布对象。使用自定义管理器时需要小心;作为the docs注明:

如果使用自定义Manager对象,请注意该第一个Manager Django遇到(在其中他们在模型中定义的顺序)有着特殊的地位。 Django将类中定义的第一个Manager解释为“默认”管理器,并且Django的多个部分(包括dumpdata)将专门为该模型使用该管理器。因此,在选择默认管理器时要小心,以避免覆盖get_query_set()导致无法检索想要使用的对象的情况。

一个简单的方法来解决这个问题是要手动指定Post.objects第一:

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

感谢。但没有改变。我仍然有同样的错误。 – skabir 2013-03-02 17:56:44

+0

你能发布完整的堆栈跟踪吗? – Hamms 2013-03-04 20:04:44

+0

对不起,没有堆栈跟踪。我正在使用Django1.6(来自github)从youtube上看到一个名为“用Django(Screencast HD)在30分钟内构建博客”的教程。该视频的目标是Django1.3。也许有版本不匹配问题。 – skabir 2013-03-05 11:54:26