}, 'update_check_result_warning': { 'default': 'False', 'type': bool }, 'update_check_last': { 'default': None, 'type': datetime }, 'update_check_id': { 'default': None, 'type': str } } settings_hierarkey = Hierarkey(attribute_name='settings') for k, v in DEFAULTS.items(): settings_hierarkey.add_default(k, v['default'], v['type']) def i18n_uns(v): try: return LazyI18nString(json.loads(v)) except ValueError: return LazyI18nString(str(v)) settings_hierarkey.add_type(LazyI18nString, serialize=lambda s: json.dumps(s.data), unserialize=i18n_uns)
import datetime as dt import json import uuid from django.utils.translation import gettext_noop from hierarkey.models import GlobalSettingsBase, Hierarkey from i18nfield.strings import LazyI18nString hierarkey = Hierarkey(attribute_name="settings") @hierarkey.set_global() class GlobalSettings(GlobalSettingsBase): def get_instance_identifier(self): instance_identifier = self.settings.get("instance_identifier") if not instance_identifier: instance_identifier = uuid.uuid4() self.settings.set("instance_identifier", str(instance_identifier)) else: instance_identifier = uuid.UUID(instance_identifier) return instance_identifier def i18n_unserialise(value): try: return LazyI18nString(json.loads(value)) except ValueError: return LazyI18nString(str(value)) hierarkey.add_type(LazyI18nString,