From e7ba11b3bc376856cd26da432684f758cfeb0745 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Mon, 4 May 2020 12:22:50 +0200 Subject: [PATCH] Fix metaclasses for ExtensibleModel and ExtensibleForm --- aleksis/core/mixins.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index e66f113b4..7f5db6e6d 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"): -- GitLab