Я создаю несколько пользовательских представлений для интерфейса администратора Django, которые используют стандартный список изменений в качестве промежуточного этапа. Это прекрасно работает, за исключением того, что страница списка изменений H1 - «Выбрать объект для изменения». «Изменить» не является правильным глаголом для действия, которое будет предпринимать пользователь в моих пользовательских представлениях.
Я нашел шаблоны django.contrib.admin, которые управляют макетом страниц списка изменений (change_list.html
и change_list_results.html
), но я не могу найти источник заголовка. Я предполагаю, что это переменная, переданная представлением где-то?
Как мне переопределить этот текст чем-то менее вводящим в заблуждение, например, «Выбрать объект» вместо «Выбрать объект для изменения»? Я согласен с изменением всех представлений списка изменений, а не только тех, которые я пытаюсь настроить; но я бы предпочел решение, которое является переопределением, а не модификацией кода django.contrib.admin, если это возможно.
Обновление: я нашел представление, ответственное за список изменений, оно main.py
в django\contrib\admin\views
. Переменная self.title
в строке 69 (Django 1.0). Я получил желаемый результат, отредактировав эту строку
self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name))
читать
self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s') % force_unicode(self.opts.verbose_name))
Мне по-прежнему было бы интересно услышать лучший способ достижения того же результата, который не предполагает взлома кода django.contrib.admin - похоже, что уже есть возможность получить заголовок так, как я мне это нравится, но я не уверен, как это вызвать?