old_contents: from django import forms
  from django.contrib import admin
  
  from setmagic import settings
  from setmagic.models import Setting
  
  
  _denied = lambda *args: False
  
  
  class SetMagicAdmin(admin.ModelAdmin):
      list_display = 'label', 'current_value',
      list_editable = 'current_value',
      list_display_links = None
  
      has_add_permission = _denied
      has_delete_permission = _denied
  
      # Make all fields read-only at the change form
      def get_readonly_fields(self, *args, **kwargs):
          return self.opts.get_all_field_names()
  
      def changelist_view(self, *args, **kwargs):
          settings._sync()
          return super(SetMagicAdmin, self).changelist_view(*args, **kwargs)
  
      def get_queryset(self, request):
          return Setting.objects.filter(name__in=settings.defs)
  
      def get_changelist_form(self, *args, **kwargs):
          class Form(forms.ModelForm):
  
              class Meta:
                  fields = self.list_editable
  
              def __init__(self, *args, **kwargs):
                  super(Form, self).__init__(*args, **kwargs)
  
                  # Do nothing for empty forms
                  if not self.instance.pk:
                      return
  
                  # Set a custom field
                  custom_field = settings.defs[self.instance.name].get('field')
                  if custom_field:
                      self.fields['current_value'] = custom_field
  
          return Form
  
  admin.site.register(Setting, SetMagicAdmin)
  
new_contents: from django import forms
  from django.contrib import admin
  from django.utils.importlib import import_module
  
  from setmagic import settings
  from setmagic.models import Setting
  
  
  _denied = lambda *args: False
  
  
  class SetMagicAdmin(admin.ModelAdmin):
      list_display = 'label', 'current_value',
      list_editable = 'current_value',
      list_display_links = None
  
      has_add_permission = _denied
      has_delete_permission = _denied
  
      # Make all fields read-only at the change form
      def get_readonly_fields(self, *args, **kwargs):
          return self.opts.get_all_field_names()
  
      def changelist_view(self, *args, **kwargs):
          settings._sync()
          return super(SetMagicAdmin, self).changelist_view(*args, **kwargs)
  
      def get_queryset(self, request):
          return Setting.objects.filter(name__in=settings.defs)
  
      def get_changelist_form(self, *args, **kwargs):
          class Form(forms.ModelForm):
  
              class Meta:
                  fields = self.list_editable
  
              def __init__(self, *args, **kwargs):
                  super(Form, self).__init__(*args, **kwargs)
  
                  # Do nothing for empty forms
                  if not self.instance.pk:
                      return
  
                  # Set a custom field
                  custom_field = settings.defs[self.instance.name].get('field')
                  if custom_field:
                      if isinstance(custom_field, str):
                          module, name = custom_field.rsplit('.', 1)
                          custom_field = getattr(import_module(module), name)()
                      self.fields['current_value'] = custom_field
  
          return Form
  
  admin.site.register(Setting, SetMagicAdmin)
  
subject: Use importlib to load custom fields by str