【发布时间】:2021-08-01 12:01:36
【问题描述】:
我正在使用 Django 3.2 和 django-moderation。
我想调节 Foo:
class MyCustomManager1(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(is_published=True)
class MyCustomManager2(MyCustomManager1):
def get_queryset(self):
return super().get_queryset().filter(/* some criteria */)
class Foo(models.Model):
# some fields
objects = models.Manager()
published = MyCustomManager1()
live = MyCustomManager2()
moderation.register(Foo)
当我运行python manage.py makemigrations 时,我得到了错误:
AttributeError: type object 'Foo' 没有属性 'unmoderated_published'
我试图通过添加字段并为已审核的对象创建管理器来解决此问题 - 但尽管这消除了错误,但该对象不再被审核。
我可以让创建的对象得到审核的唯一方法是删除所有模型管理器 - 默认的 objects 管理器除外。
如何让 django-moderation 使用自定义模型管理器处理模型?
当我尝试从 MPTT 派生 Foo 时遇到同样的错误 - 即使不使用自定义模型管理器。
AttributeError: type object 'Foo' 没有属性 'unmoderated__tree_manager'
【问题讨论】:
标签: django django-models django-mptt django-moderation