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) admin_instance = admin_class(MenuOption, self.admin_site) return admin_instance.change_view(request, object_id, extra_context) else: extra_context['default_form'] = True return ModelAdmin.change_view(self, request, object_id, extra_context) def changelist_view(self, request, extra_context=None): if extra_context is None: extra_context = {} extra_context['menu_option_types'] = MenuOption.MODEL_TYPE_CHOICES extra_context['app_label'] = _("GDT Nav") extra_context['menu_groups'] = MenuGroup.objects.order_by('name') return ModelAdmin.changelist_view(self, request, extra_context) def get_urls(self): from django.conf.urls.defaults import patterns, url urlpatterns = ModelAdmin.get_urls(self) def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs)
def change_view(self, request, object_id, form_url='', extra_context=None): return ModelAdmin.change_view(self, request, object_id, form_url=form_url, extra_context={ 'prices': Price.objects.all().values(), 'payment_methods': PaymentMethod.objects.all().values() })