diff --git a/core/admin.py b/core/admin.py index c4e9bc18..f6d94544 100644 --- a/core/admin.py +++ b/core/admin.py @@ -1,3 +1,5 @@ +from contextlib import suppress + from constance.admin import Config from constance.admin import ConstanceAdmin as BaseConstanceAdmin from django.apps import apps @@ -6,7 +8,7 @@ from django.contrib.admin import ModelAdmin, TabularInline from django.contrib.gis.admin import GISModelAdmin from django.db.models import Model from django.utils.translation import gettext_lazy as _ -from modeltranslation.translator import translator +from modeltranslation.translator import NotRegistered, translator from modeltranslation.utils import get_translation_fields from mptt.admin import DraggableMPTTAdmin @@ -43,16 +45,17 @@ class FieldsetsMixin: def get_fieldsets(self, request, obj=None): fieldsets = [] - def add_translations_fieldset(fieldsets): - opts = translator.get_options_for_model(self.model) - translation_fields = [] - for orig in opts.local_fields: - translation_fields += get_translation_fields(orig) - if translation_fields: - fieldsets = list(fieldsets) + [ - (_("translations"), {"fields": translation_fields}) - ] - return fieldsets + def add_translations_fieldset(fss): + with suppress(NotRegistered): + transoptions = translator.get_options_for_model(self.model) + translation_fields = [] + for orig in transoptions.local_fields: + translation_fields += get_translation_fields(orig) + if translation_fields: + fss = list(fss) + [ + (_("translations"), {"fields": translation_fields}) + ] + return fss if self.general_fields: fieldsets.append((_("general"), {"fields": self.general_fields}))