Coverage for patchtime / models.py: 93%
28 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-24 12:43 +0000
1from django.db import models
2from django.urls import reverse
3from simple_history.models import HistoricalRecords
4from django.contrib.auth.models import Group
6from . import app_label
9class ModelManager(models.Manager):
10 def get_by_natural_key(self, name):
11 return self.get(name=name)
14class Model(models.Model):
16 name = models.CharField(max_length=45)
18 group = models.ForeignKey(
19 Group,
20 editable=False,
21 blank=True,
22 null=True,
23 on_delete=models.PROTECT,
24 related_name="patchtimes",
25 )
27 objects = ModelManager()
28 history = HistoricalRecords()
30 def natural_key(self):
31 return (self.name,)
33 @classmethod
34 def get_natural_key_fields(cls):
35 return ["name"]
37 @classmethod
38 def get_natural_key_info(cls):
39 return [("name", None)]
41 def __str__(self):
42 return "%s" % self.name
44 def get_absolute_url(self):
45 return reverse("%s:detail" % app_label, kwargs={"pk": self.pk})
47 class Meta:
48 db_table = "{}_{}".format("sm", app_label)
49 constraints = [
50 models.UniqueConstraint(
51 fields=["name", "group"], name="unique_sm_patchtime_name_group"
52 )
53 ]