Coverage for clusterpackagetype / 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 ClusterPackageTypeManager(models.Manager):
10 def get_by_natural_key(self, name):
11 return self.get(name=name)
14class Model(models.Model):
15 objects = ClusterPackageTypeManager()
16 history = HistoricalRecords()
17 name = models.CharField(max_length=45)
19 def __str__(self):
20 return "%s" % self.name
22 def natural_key(self):
23 return (self.name,)
25 group = models.ForeignKey(
26 Group,
27 editable=False,
28 blank=True,
29 null=True,
30 on_delete=models.PROTECT,
31 related_name="clusterpackagetypes",
32 )
34 @classmethod
35 def get_natural_key_fields(cls):
36 return ["name"]
38 @classmethod
39 def get_natural_key_info(cls):
40 return [("name", None)]
42 def get_absolute_url(self):
44 return reverse("%s:detail" % app_label, kwargs={"pk": self.pk})
46 class Meta:
47 db_table = "{}_{}".format("sm", app_label)
48 constraints = [
49 models.UniqueConstraint(
50 fields=["name", "group"], name="unique_sm_clusterpackagetype_name_group"
51 )
52 ]