diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models_common.py | 7 | ||||
-rw-r--r-- | ishtar_common/models_rest.py | 13 | ||||
-rw-r--r-- | ishtar_common/templatetags/window_field.py | 4 |
3 files changed, 21 insertions, 3 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index e55a21e0c..3138cecc6 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -29,7 +29,7 @@ from django.contrib.postgres.fields import JSONField from django.contrib.postgres.search import SearchVectorField, SearchVector from django.contrib.sites.models import Site from django.core.cache import cache -from django.core.exceptions import ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.core.files import File from django.core.serializers import serialize from django.urls import reverse, NoReverseMatch @@ -3268,7 +3268,10 @@ class MainItem(ShortMenuItem): if field.name in self.SERIALIZE_EXCLUDE: continue if field.many_to_one or field.one_to_one: - value = getattr(self, field.name) + try: + value = getattr(self, field.name) + except (MultipleObjectsReturned, ObjectDoesNotExist): + value = None if value: value = str(value) else: diff --git a/ishtar_common/models_rest.py b/ishtar_common/models_rest.py index cc07a8803..f2b060bef 100644 --- a/ishtar_common/models_rest.py +++ b/ishtar_common/models_rest.py @@ -21,7 +21,18 @@ except (AssertionError, ImportError): from ishtar_common.utils import ugettext_lazy as _ -MAIN_CONTENT_TYPES = (("archaeological_operations", "operation"),) +APP_CONTENT_TYPES = [ + ("archaeological_operations", "operation"), + ("archaeological_context_records", "contextrecord"), + ("archaeological_finds", "find"), + ("archaeological_warehouse", "warehouse"), + ("archaeological_files", "file"), +] + +MAIN_CONTENT_TYPES = APP_CONTENT_TYPES + [ + ("archaeological_operations", "archaeologicalsite"), + ("archaeological_warehouse", "container"), +] class ApiUser(models.Model): diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py index cffa2a54f..70a2ba4da 100644 --- a/ishtar_common/templatetags/window_field.py +++ b/ishtar_common/templatetags/window_field.py @@ -211,4 +211,8 @@ def field_flex_detail_multiple_full(context, caption, items): @register.filter def m2m_listing(item, key): + if isinstance(item, dict): + if key in item: + return item[key] + return [] return item.m2m_listing(key) |