code: def get_form(self, request, obj=None, **kwargs):
          
          form = super(ModelAppHookConfig, self).get_form(request, obj, **kwargs)
          if self.app_config_attribute not in form.base_fields:
              return form
          app_config_default = self._app_config_select(request, obj)
          if app_config_default:
              form.base_fields[self.app_config_attribute].initial = app_config_default
              get = copy.copy(request.GET)
              get[self.app_config_attribute] = app_config_default.pk
              request.GET = get
          elif app_config_default is None and request.method == 'GET':
              class InitialForm(form):
                  class Meta(form.Meta):
                      fields = (self.app_config_attribute,)
              form = InitialForm
          form = self._set_config_defaults(request, form, obj)
          return form
docs: Provides a flexible way to get the right form according to the context
  
          For the add view it checks whether the app_config is set; if not, a special form
          to select the namespace is shown, which is reloaded after namespace selection.
          If only one namespace exists, the current is selected and the normal form
          is used.