Skip to content

Instantly share code, notes, and snippets.

@sbussetti
Last active December 14, 2015 20:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbussetti/a19bda6fb1d8d7c00049 to your computer and use it in GitHub Desktop.
Save sbussetti/a19bda6fb1d8d7c00049 to your computer and use it in GitHub Desktop.
InheritedModelAdmin - model admin that redirects all requests to "subclass_model" attribute.
from functools import update_wrapper
from django.conf.urls import patterns, url
from django.contrib import admin
class BounceDetailedAdmin(admin.ModelAdmin):
subclass_model = None
def get_model_perms(self, request):
return {}
def get_urls(self):
# basically force everything over to the subclass..
model_detailed = admin.site._registry.get(self.subclass_model)
def wrap(view):
def wrapper(*args, **kwargs):
return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view)
info = self.model._meta.app_label, self.model._meta.model_name
urlpatterns = patterns('',
url(r'^$',
wrap(model_detailed.changelist_view),
name='%s_%s_changelist' % info),
url(r'^add/$',
wrap(model_detailed.add_view),
name='%s_%s_add' % info),
url(r'^(.+)/history/$',
wrap(model_detailed.history_view),
name='%s_%s_history' % info),
url(r'^(.+)/delete/$',
wrap(model_detailed.delete_view),
name='%s_%s_delete' % info),
url(r'^(.+)/$',
wrap(model_detailed.change_view),
name='%s_%s_change' % info),
)
return urlpatterns
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment