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