summaryrefslogtreecommitdiff
path: root/ishtar_common/models_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_common.py')
-rw-r--r--ishtar_common/models_common.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index 66cf0c5e5..196e8a7d7 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -816,9 +816,9 @@ class FullSearch(models.Model):
def general_types(cls):
for k in get_all_field_names(cls):
field = cls._meta.get_field(k)
- if not hasattr(field, "rel") or not field.rel:
+ if not hasattr(field, "remote_field") or not field.remote_field:
continue
- rel_model = field.rel.to
+ rel_model = field.remote_field.model
if issubclass(rel_model, (GeneralType, HierarchicalType)):
yield k
@@ -1180,6 +1180,14 @@ class HistoryError(Exception):
class HistoricalRecords(BaseHistoricalRecords):
+ def get_extra_fields(self, model, fields):
+ extra_fields = super().get_extra_fields(model, fields)
+ # initialize default empty fields
+ for key in getattr(model, "HISTORICAL_M2M", []):
+ extra_fields[key] = ""
+ extra_fields["documents"] = ""
+ return extra_fields
+
def _save_historic(
self,
manager,
@@ -1442,12 +1450,13 @@ class BaseHistorizedItem(
setattr(item, k, None)
continue
try:
- val = field.rel.to.objects.get(pk=val)
+ val = field.remote_field.model.objects.get(pk=val)
setattr(item, k, val)
except ObjectDoesNotExist:
if strict:
raise HistoryError(
- "The class %s has no pk %d" % (str(field.rel.to), val)
+ "The class %s has no pk %d"
+ % (str(field.remote_field.model), val)
)
setattr(item, k, None)
item.pk = self.pk
@@ -2810,7 +2819,7 @@ class GeoItem(models.Model):
verbose_name=_("Spatial Reference System"),
blank=True,
null=True,
- on_delete=models.PROTECT
+ on_delete=models.PROTECT,
)
point = models.PointField(_("Point"), blank=True, null=True, dim=3)
point_2d = models.PointField(_("Point (2D)"), blank=True, null=True)