src/notes/models/base.py
author ymh <ymh.work@gmail.com>
Mon, 26 Jun 2017 16:05:47 +0200
changeset 88 2a861fed6bde
parent 24 3b3999550508
child 119 8ff8e2aee0f9
permissions -rw-r--r--
Deauthenticate user if refresh was not possible (session expired or total delta reached)

"""
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