Coverage for apis_core / entities / abc.py: 45%
29 statements
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-27 05:15 +0000
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-27 05:15 +0000
1import functools
3from django.urls import reverse
5from apis_core.generic.abc import GenericModel
8class Entity(GenericModel):
9 class Meta:
10 abstract = True
12 @property
13 def get_canonical_url(self):
14 return reverse("apis_core:canonical-entity", args=[self.pk])
16 @functools.cached_property
17 def get_prev_id(self):
18 prev_instance = (
19 type(self).objects.filter(id__lt=self.id).order_by("-id").only("id").first()
20 )
21 if prev_instance is not None:
22 return prev_instance.id
23 return False
25 @functools.cached_property
26 def get_next_id(self):
27 next_instance = (
28 type(self).objects.filter(id__gt=self.id).order_by("id").only("id").first()
29 )
30 if next_instance is not None:
31 return next_instance.id
32 return False
34 def import_data(self, data):
35 super().import_data(data)
36 if "same_as" in data:
37 self._uris = data["same_as"]
38 self.save()
39 if "relations" in data:
40 self.create_relations_to_uris = data["relations"]
41 self.save()