From b2f9be7e411f2e9f5f78b66333d09f35e8aeb1e2 Mon Sep 17 00:00:00 2001 From: tehfink Date: Sat, 6 Jan 2018 18:03:20 -0500 Subject: [PATCH 1/3] changes to SingleOwnerMixin for Django-2.0 --- django_extras/contrib/auth/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_extras/contrib/auth/models.py b/django_extras/contrib/auth/models.py index 72487e9..23cfeeb 100644 --- a/django_extras/contrib/auth/models.py +++ b/django_extras/contrib/auth/models.py @@ -129,7 +129,8 @@ class Document(SingleOwnerMixin, models.Model): """ owner = models.ForeignKey(USER_MODEL_NAME, verbose_name=_('owner'), - related_name='%(app_label)s_%(class)s_owner') + related_name='%(app_label)s_%(class)s_owner', + on_delete=models.CASCADE, null=True, blank=False) objects = SingleOwnerMixinManager() From 42d172f5497bfa608db07e5fd00dbd4977ec78e8 Mon Sep 17 00:00:00 2001 From: tehfink Date: Sun, 7 Jan 2018 14:03:24 -0500 Subject: [PATCH 2/3] db changes for Django 2.0 compatibility --- django_extras/db/models/fields/__init__.py | 2 +- django_extras/db/models/fields/jsonfield.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/django_extras/db/models/fields/__init__.py b/django_extras/db/models/fields/__init__.py index dcf40c0..3d7e8e9 100644 --- a/django_extras/db/models/fields/__init__.py +++ b/django_extras/db/models/fields/__init__.py @@ -71,7 +71,7 @@ def get_db_prep_save(self, value, connection): value = self.to_python(value) if value is not None: value = value._amount - return connection.ops.value_to_db_decimal(value, self.max_digits, self.decimal_places) + return connection.ops.adapt_decimalfield_value(value, self.max_digits, self.decimal_places) class PercentField(models.FloatField): diff --git a/django_extras/db/models/fields/jsonfield.py b/django_extras/db/models/fields/jsonfield.py index e25ce91..6271163 100644 --- a/django_extras/db/models/fields/jsonfield.py +++ b/django_extras/db/models/fields/jsonfield.py @@ -35,7 +35,7 @@ def __repr__(self): return dumps(self) -class JsonField(six.with_metaclass(models.SubfieldBase, models.TextField)): +class JsonField(models.TextField): """Field that serializes/de-serializes a python list/dictionary to the database seamlessly.""" From cb2e76bf2137dcd7e98e269bcb03e69c56d0d5b2 Mon Sep 17 00:00:00 2001 From: tehfink Date: Wed, 10 Jan 2018 15:28:03 -0500 Subject: [PATCH 3/3] seems to solve model-saving error: AttributeError: 'Money' object has no attribute 'as_tuple' --- django_extras/core/types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_extras/core/types.py b/django_extras/core/types.py index eb6073b..458c33e 100644 --- a/django_extras/core/types.py +++ b/django_extras/core/types.py @@ -57,7 +57,7 @@ def decimal_value(value): return value -class Money(object): +class Money(decimal.Decimal): """ Represents a monetary quantity. """