docs: def _process_registry(registry, call_func):
      """
      Given a dictionary, and a registration function, process the registry
      """
      from django.core.exceptions import ImproperlyConfigured
      from django.apps import apps
  
      for key, value in list(registry.items()):
          model = apps.get_model(*key.split('.'))
          if model is None:
              raise ImproperlyConfigured(_('%(key)s is not a model') % {'key': key})
          if isinstance(value, (tuple, list)):
              for item in value:
                  if isinstance(item, str):
                      call_func(model, item)
                  elif isinstance(item, dict):
                      field_name = item.pop('name')
                      call_func(model, field_name, extra_params=item)
                  else:
                      raise ImproperlyConfigured(_("%(settings)s doesn't recognize the value of %(key)s") %
                                                 {'settings': 'CATEGORY_SETTINGS', 'key': key})
          elif isinstance(value, str):
              call_func(model, value)
          elif isinstance(value, dict):
              field_name = value.pop('name')
              call_func(model, field_name, extra_params=value)
          else:
              raise ImproperlyConfigured(_("%(settings)s doesn't recognize the value of %(key)s") %
                                         {'settings': 'CATEGORY_SETTINGS', 'key': key})