From 70eb4d341b910503c34816918bb4ad02c2819a2e Mon Sep 17 00:00:00 2001 From: Maarten ter Huurne Date: Wed, 10 Apr 2024 14:17:34 +0200 Subject: [PATCH] Remove excerpt field workaround for South FakeORM (#610) * Remove excerpt field workaround for South FakeORM South FakeORM hasn't been supported since fda2d39e, but the workaround introduced in 9147becf evaded deletion. The `NoRendered` model was removed in 9df3df99, but with that model gone, the `no_excerpt_field` argument became obsolete as well. * Document removal of `no_excerpt_field` in changelog --- CHANGES.rst | 1 + model_utils/fields.py | 15 +-------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 5514aea7..961d6b33 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -11,6 +11,7 @@ To be released - Don't use `post_init` signal for initialize tracker - Make `contribute_to_class()` in `StatusField`, `MonitorField` and `SplitField` forward additional arguments to Django +- `SplitField` no longer accepts `no_excerpt_field` as a keyword argument 4.4.0 (2024-02-10) ------------------ diff --git a/model_utils/fields.py b/model_utils/fields.py index 9bb461e8..1cd2d178 100644 --- a/model_utils/fields.py +++ b/model_utils/fields.py @@ -222,16 +222,8 @@ def __set__(self, obj, value): class SplitField(models.TextField): - def __init__(self, *args, no_excerpt_field=False, **kwargs): - # for South FakeORM compatibility: the frozen version of a - # SplitField can't try to add an _excerpt field, because the - # _excerpt field itself is frozen as well. See introspection - # rules below. - self.add_excerpt_field = not no_excerpt_field - super().__init__(*args, **kwargs) - def contribute_to_class(self, cls, name, *args, **kwargs): - if self.add_excerpt_field and not cls._meta.abstract: + if not cls._meta.abstract: excerpt_field = models.TextField(editable=False) cls.add_to_class(_excerpt_field_name(name), excerpt_field) super().contribute_to_class(cls, name, *args, **kwargs) @@ -253,11 +245,6 @@ def get_prep_value(self, value): except AttributeError: return value - def deconstruct(self): - name, path, args, kwargs = super().deconstruct() - kwargs['no_excerpt_field'] = True - return name, path, args, kwargs - class UUIDField(models.UUIDField): """