在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)
答案 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()