/usr/share/pyshared/maasserver/models/cleansave.py is in python-django-maas 1.2+bzr1373+dfsg-0ubuntu1~12.04.6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # Copyright 2012 Canonical Ltd. This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).
"""Model mixin: check `full_clean` on every `save`."""
from __future__ import (
absolute_import,
print_function,
unicode_literals,
)
__metaclass__ = type
__all__ = [
'CleanSave',
]
class CleanSave:
"""Mixin for model classes.
This adds a call to `self.full_clean` to every `save`, so that you can
never save a model object in an unaccepted state.
This was meant to be a standard part of Django model classes, but was
left out purely for backwards compatibility_, which is not an issue for
us.
Derive your model from :class:`CleanSave` before deriving from
:class:`django.db.models.Model` if you need the `full_clean` to happen
before the real `save` to the database.
.. _compatibility: https://code.djangoproject.com/ticket/13100#comment:2
"""
def save(self, *args, **kwargs):
self.full_clean()
return super(CleanSave, self).save(*args, **kwargs)
|