Документация Django четко гласит:
Не каждый шаблон в contrib \ admin \ templates \ admin может быть переопределен для приложения или модели.
Затем перечисляются те, которые могут, и base.html
, base_site.html
и index.html
- те, которые меня интересуют - не входят в список. Они могут быть переопределены для каждого проекта, но не для каждого приложения.
Мой вопрос: есть ли способ обойти это, не затрагивая редактирование кода внутри django.contrib.admin? Я готов рассмотреть некоторые решения для обезьяноподготовки :-). Я действительно хочу, чтобы в моем приложении были пользовательские версии этих трех файлов в каталоге templates
, и чтобы каждый проект использовал приложение для их использования.
Причина, по которой я заинтересован, заключается в том, что я создаю большое, многократно используемое приложение с сильно настроенным интерфейсом администратора, и переопределения «базовых» шаблонов для каждого проекта - не лучшее решение, так как я бы скопировать пользовательские шаблоны в каталог шаблонов каждого проекта, в котором используется приложение. Выпуск новых версий приложения с новыми модификациями этих основных шаблонов будет означать повторное копирование всего в затронутые проекты. Тьфу.
Я понимаю причину решения сделать только несколько шаблонов, которые можно переопределить для каждого приложения; в конце концов, если бы можно было переопределить их все, какое переопределенное администратор приложения имело бы приоритет?
Но в моем случае приложение будет «центральным элементом» нескольких клиентских проектов, а другие приложения в этих проектах просто играют вспомогательную роль.
Настройка существующих шаблонов на основе CSS пока не дает вам результатов, и я не решаюсь полагаться на решения для манипулирования DOM JavaScript, если в этом нет крайней необходимости.
Одно из решений, которое приходит на ум, - это поместить пользовательские шаблоны base.html
и т. Д. В appname / templates / admin /, а затем вставить их в папку шаблонов проекта. Таким образом, любые обновления приложения автоматически вступают в силу на уровне проекта.
Символьные ссылки, вероятно, мой метод выбора, если не предлагается ничего лучшего, но я хотел бы услышать, есть ли у кого-нибудь более хорошее решение.