Django - Admin - Как переопределить шаблон change_list для Model Proxy? - PullRequest
3 голосов
/ 30 марта 2011

Я сделал простое приложение Django. У меня есть одна модель "Посетитель". Моя цель - чтобы в админке Django появились две таблицы. Один со всеми посетителями и один только с теми на сегодня.

Я получил все, что работает с кодом ниже, следуя этим инструкциям . Но я не уверен, как переопределить только change_list.html только для VisitorExpectedTodayProxy.

Я пытался следовать инструкциям здесь , и я создал Site/templates/admin/VisitorLog/VisitorExpectedTodayProxy/change_list.html и сделал там свои изменения, но, похоже, он его не поднимает.

Models.py

class Visitor(models.Model):
    visit_datetime = models.DateTimeField(null=True)
    visitor_name = models.CharField(max_length=500)

#Make dummy models for different object views in admin interface
class VisitorExpectedTodayProxy(Visitor):
    class Meta:
        proxy=True
        verbose_name = "Visitor"
        verbose_name_plural = "Today's Visitors and Regular Visitors"

Ответы [ 2 ]

5 голосов
/ 30 марта 2011

На верхнем регистре ваши пути будут выглядеть так:

templates/admin/visitorlog/visitorexpectedtodayproxy/change_list.html

Содержимое вашего change_list.html должно расширять стандартный admin / change_list:

{% extends "admin/change_list.html" %}

Вы можете настроить различные разделы этой страницы, взглянув на различные шаблоны блоков в исходном коде django:

django/contrib/admin/templates/admin/change_list.html
3 голосов
/ 30 марта 2011

Попробуйте ввести строчные буквы в именах папок.

Обратите внимание, что приложение администратора будет искать имя модели в нижнем регистре при поиске каталога, поэтому убедитесь, что имя каталога указано в нижнем регистре, если вы собираетесьЗапустите ваше приложение в чувствительной к регистру файловой системе.

Кроме того, прошли ли вы контрольный список, чтобы убедиться, что ваш каталог шаблонов работает вообще?TEMPLATE_DIRS должна содержать вашу папку с шаблонами, и убедитесь, что загрузчик шаблонов filesystem предшествует загрузчику app_directories.

Наконец, вы можете указать на шаблон через атрибут ModelAdmin: http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_list_template

...