diff -r 4c3ae065f22c -r 3b3999550508 src/notes/models/base.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/notes/models/base.py Thu Jun 08 17:57:57 2017 +0200 @@ -0,0 +1,27 @@ +""" +base abstract models +""" +import uuid + +from concurrency.fields import AutoIncVersionField +from django.db import models +from django.utils.translation import ugettext_lazy as _ + + +class ModelManager(models.Manager): + def get_by_natural_key(self, ext_id): + return self.get(ext_id=ext_id) + +class Model(models.Model): + objects = ModelManager() + + created = models.DateTimeField(auto_now_add=True, verbose_name=_('Model|created')) + updated = models.DateTimeField(auto_now=True, verbose_name=_('Model|updated')) + ext_id = models.UUIDField(unique=True, default=uuid.uuid4, verbose_name=_('Model|ext_id')) + version = AutoIncVersionField(verbose_name=_('Model|version')) + + def natural_key(self): + return (self.ext_id, ) + + class Meta: + abstract = True