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)
Пример #2
0
 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()
                                                                                       })