Сначала немного предыстории:
У меня есть Event
модель, у которой есть разные event_type
. Я хочу разбить один из этих типов событий, «Фильм», на отдельного администратора. У меня есть базовая функциональность: модель прокси, унаследованная от Event
, с именем Film
, настраиваемый менеджер для этой модели прокси, который фильтрует ее только по типам событий «фильм», и собственный ModelAdmin.
Проблема в обратном. Теперь мне нужно отфильтровать фильмы от главного Event
админа. Я не хочу изменять модель Event
или ее менеджера по умолчанию, потому что влияние будет слишком большим. Итак, я попытался создать другую модель прокси, EventAdminProxy
, с единственной целью - предоставить отфильтрованный список событий в админке. Затем я регистрирую эту модель вместо Event
в существующем ModelAdmin.
Это, очевидно, работает, но имеет неприятный побочный эффект в виде изменения URL-адресов в админке. Вместо того, чтобы список изменений находился в «/ admin / event / event /», теперь он находится в «/ admin / event / eventadminproxy /».
Я пытаюсь сохранить эту настройку, но также сохранить старый URL-адрес. Я пробовал перегрузить метод get_urls
ModelAdmin, но, насколько я могу судить, вы не можете контролировать полный URL-адрес, а только то, что идет после части "/ app_label / model_class /".
Я подумал о том, чтобы переопределить его в основном urls.py, но не могу найти приемлемого представления для привязки. Фактические представления доступны только для созданного экземпляра объекта ModelAdmin, но не для самого класса.
Любые идеи о том, как переопределить URL-адрес, используемый в админке?