django - 访问父类元素时的 InheritanceManager 错误 (Django 2.0)

标签 django inheritance django-model-utils

我目前正在尝试在 Django 2.0 (Python 3.6.3) 中建立一个面向对象的架构,其中包含父类 Program 和一些子类 Snippet 和 Software。我看到 model_utils 模块包含一些处理多态性的工具,并尝试复制教程( http://django-model-utils.readthedocs.io/en/latest/managers.html ),以下是它在我的案例中给出的内容:

models.py

from django.db import models
from model_utils.managers import InheritanceManager

class Program(models.Model):
    name = models.CharField(max_length=100)

    objects = InheritanceManager()

class Snippet(Program):
    code = models.TextField()

class Software(Program):
    repoLink = models.URLField()

Django shell

>>> from coding.models import Program
>>> programs = Program.objects.select_subclasses()
>>> programs
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "...\py3django\lib\site-packages\django\db\models\query.py", line 248, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "...\py3django\lib\site-packages\django\db\models\query.py", line 292, in __getitem__
    qs = self._chain()
  File "...\py3django\lib\site-packages\django\db\models\query.py", line 1156, in _chain
    obj = self._clone()
  File "...\py3django\lib\site-packages\model_utils\managers.py", line 100, in _clone
    return super(InheritanceQuerySetMixin, self)._clone(**kwargs)
TypeError: _clone() got an unexpected keyword argument 'subclasses'

我不明白这个错误以及如何修复它,甚至不知道这是我的设计失败还是 InheritanceManager 使用不当。那么这个错误消息的来源是什么?

最佳答案

根据the docs ,django-model-utils仅支持Django 1.8到1.10。

关于django - 访问父类元素时的 InheritanceManager 错误 (Django 2.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47738511/

相关文章:

python - 有没有办法在 Django 模型中拥有类似字典的字段?

python - Django + (django-model-utils) : Combining two models/inheriting from two models

Django - 检查用户是否对每个 url 进行了身份验证

html - 使用 nav-pills 渲染 django 和 html

python - Django ORM 计算两个日期属性之间的天数

c++ - 将派生类的 std::shared_ptr 转换为基类的 std::shared_ptr

c++ - 您可以使用 C++ 创建继承而不进行子类型化吗

python - 分片 Django 项目

java, inheritance——parent中的private字段通过child中的public方法访问

python - Django-model-utils 按子类过滤