Как добавить пользовательское представление в админку django аналогично /change и /add?

Как я могу создать расширенное представление для экземпляра объекта в Django.

Например, в changelist_view объекте модели я хотел бы иметь ссылку на пользовательское представление, которое будет отображать некоторую информацию.

Я бы хотел, чтобы эта страница сидела в чем-то вроде: admin/my_app/my_model/<id>/custom-view

  • urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin/my_app/my_model/<id>/customers-in-use', views.custom_view),
  • admin.py
class MyModelAdmin(VersionAdmin)
    list_display = [... custom_view, ...]

    def custom_view(self, obj):
        url = f"/admin/my_app/my_model/{obj.id}/custom-view/"
        return format_html(f"<a href='{url}'>{obj.id}</a>")

А в views.py у меня есть метод, который просто собирает данные. Но когда я нажимаю на ссылку, он перенаправляет меня на главную страницу админки с сообщением my_model with ID <id>/custom-view" doesn't exist. Perhaps it was deleted?

Какой правильный способ (если таковой существует) для этого?

Вернуться на верх