def add_view(self, request, form_url='', extra_context=None): context = self.get_context_data(**(extra_context or {} )) return DjangoModelAdmin.add_view(self, request, form_url, context)
extra_context['menu_option_types'] = MenuOption.MODEL_TYPE_CHOICES if option_type is not None: # Hack to detect if we need to specify the javascript url or not. try: reverse('admin:jsi18n') except NoReverseMatch, e: extra_context['jsurl'] = "../../../../jsi18n/" option_type = int(option_type) type = dict(MenuOption.MODEL_TYPE_CHOICES)[option_type] extra_context['crumb'] = _("Add %(name)s") % {'name':type} admin_class = self.fetch_admin_class(option_type) admin_instance = admin_class(MenuOption, self.admin_site) return admin_instance.add_view(request, form_url, extra_context) else: extra_context['default_form'] = True return ModelAdmin.add_view(self, request, form_url, extra_context) def change_view(self, request, object_id, extra_context=None): try: obj = self.queryset(request).get(pk=int(object_id)) option_type = obj.option_type except (self.model.DoesNotExist, ValueError), e: option_type = None if extra_context is None: extra_context = {} extra_context['app_label'] = _("GDT Nav") extra_context['menu_option_types'] = MenuOption.MODEL_TYPE_CHOICES if option_type is not None: option_type = int(option_type) extra_context['crumb'] = obj.name admin_class = self.fetch_admin_class(option_type)