InheritanceManager bug when access parent-class elements (Django 2.0)

265 Views Asked by At

I'm currently trying to have a object oriented schema in Django 2.0 (Python 3.6.3) with a parent class Program and some children classes Snippet and Software. I saw that the model_utils module contains some tools to handle the polymorphism, and tried to replicate the tutorial (http://django-model-utils.readthedocs.io/en/latest/managers.html), here is what it gives in my case:

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'

I don't understand this error and how to fix it, and even don't know if it is a fail in my design or a bad use of the InheritanceManager. So what can be the origin of this error message?

1

There are 1 best solutions below

0
On BEST ANSWER

According to the docs, django-model-utils only supports Django 1.8 to 1.10.