Итак, вам нужен второй URL, который идет в представление списка изменений, чтобы вы могли проверить, какой из двух он был по запрошенному URL, и затем соответствующим образом изменить набор запросов?
Просто имитируйте, что делает django.contrib.admin.options, и добавьте другой URL-адрес в ModelAdmin.
Должно выглядеть примерно так:
class CustomAdmin(admin.ModelAdmin):
def get_urls(self):
def wrap(view):
def wrapper(*args, **kwargs):
kwargs['admin'] = self # Optional: You may want to do this to make the model admin instance available to the view
return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view)
# Optional: only used to construct name - see below
info = self.model._meta.app_label, self.model._meta.module_name
urlpatterns = patterns('',
url(r'^my_changelist/$', # to your liking
wrap(self.changelist_view),
name='%s_%s_my_changelist' % info)
)
urlpatterns += super(CustomAdmin, self).get_urls()
return urlpatterns