Use extra_context view kwarg in changelist_view()

Currently the `extra_context` kwarg is not used in `changelist_view`, it
is completely ignored. However, using it is a common idiom in a
`ModelAdmin` view method as a way to provide extra context variables to
an overridden template.

This is useful if one wants extra context variables in an overridden
`admin/constance/change_list.html` template.
This commit is contained in:
David Cooper 2025-10-07 11:16:51 -04:00
parent c6b2c44671
commit 0f88fe83fa

View file

@ -92,17 +92,18 @@ class ConstanceAdmin(admin.ModelAdmin):
messages.add_message(request, messages.SUCCESS, _("Live settings updated successfully.")) messages.add_message(request, messages.SUCCESS, _("Live settings updated successfully."))
return HttpResponseRedirect(".") return HttpResponseRedirect(".")
messages.add_message(request, messages.ERROR, _("Failed to update live settings.")) messages.add_message(request, messages.ERROR, _("Failed to update live settings."))
context = dict( context = {
self.admin_site.each_context(request), **self.admin_site.each_context(request),
config_values=[], **(extra_context or {}),
title=self.model._meta.app_config.verbose_name, "config_values": [],
app_label="constance", "title": self.model._meta.app_config.verbose_name,
opts=self.model._meta, "app_label": "constance",
form=form, "opts": self.model._meta,
media=self.media + form.media, "form": form,
icon_type="svg", "media": self.media + form.media,
django_version=get_version(), "icon_type": "svg",
) "django_version": get_version(),
}
for name, options in settings.CONFIG.items(): for name, options in settings.CONFIG.items():
context["config_values"].append(self.get_config_value(name, options, form, initial)) context["config_values"].append(self.get_config_value(name, options, form, initial))