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() 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. """ 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."""