1

在一个 Django 项目中,我安装了 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)
4

1 回答 1

1

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

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

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

class Post(models.Model):
    title = models.CharField(max_length=100)
    objects = models.Manager()
    tags = TaggableManager()
于 2013-03-02T00:26:09.867 回答