diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index e66f113b47368d1620dbfbb2b21e8aa0b0f0cd66..7f5db6e6d1bb4c17ece7152167ef35334b22c115 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -17,7 +17,7 @@ from material.base import Layout, LayoutNode from rules.contrib.admin import ObjectPermissionsModelAdmin -class _ExtensibleModelBase(models.ModelBase): +class _ExtensibleModelBase(models.base.ModelBase): """Ensure predefined behaviour on model creation. This metaclass serves the following purposes: @@ -26,11 +26,13 @@ class _ExtensibleModelBase(models.ModelBase): """ def __new__(mcls, name, bases, attrs): - mcls = super().__new__(name, bases, attrs) + mcls = super().__new__(mcls, name, bases, attrs) if "Meta" not in attrs or not attrs["Meta"].abstract: # Register all non-abstract models with django-reversion - mcls = reversion.register(super().__new__(name, bases, attrs)) + mcls = reversion.register(mcls) + + return mcls class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase): @@ -227,8 +229,8 @@ class PureDjangoModel(object): class _ExtensibleFormMetaclass(ModelFormMetaclass): - def __new__(cls, mcs, name, bases, dct): - x = super().__new__(mcs, name, bases, dct) + def __new__(cls, name, bases, dct): + x = super().__new__(cls, name, bases, dct) # Enforce a default for the base layout for forms that o not specify one if hasattr(x, "layout"):