﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
18072	ChangeList shouldn't use hardcoded urls	Mikhail Korobov	nobody	"Some urls are still hardcoded in admin: ChangeList.url_for_result returns implicit relative url https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/views/main.py#L377

Noticed this while implementing custom AdminSite that shows a changelist of one of the models as an index page (edit links were incorrect):

{{{
class RestaurantPanel(admin.AdminSite):
    main_model = None

    @never_cache
    def index(self, request, extra_context=None):
        model_admin = self._registry[self.main_model]
        return model_admin.changelist_view(request, extra_context)
}}}

This ChangeList subclass fixed the issue for me:

{{{

class FixedChangeList(ChangeList):
    def url_for_result(self, result):
        admin_name = self.model_admin.admin_site.name
        pk = getattr(result, self.pk_attname)

        return reverse(""%s:%s_%s_change"" % (
            admin_name, self.opts.app_label, self.opts.module_name
        ), args=[pk])

}}}"	Cleanup/optimization	closed	contrib.admin	1.4	Normal	fixed			Accepted	0	0	0	0	0	0
