2016-04-04 2 views
0

Я настраиваю администратор django для отображения пользовательской навигационной панели сверху. Поэтому я добавляю к своему adminClass (в admin.py) метод переопределения changelist_view и передает список объектов (внутри changelist_view), которые шаблон восстанавливает и показывает в навигационной панели.Передача данных в мастер-шаблон

def changelist_view(self, request, extra_context=None): 
    extra_context = extra_context or {}     
    mygetModels = getModels() 
    extra_context["modelsTables"] = mygetModels.getTablesModels() 
    return super(SrcComscoreInformeAdmin, self).changelist_view(request, extra_context=extra_context) 

Когда я называю конкретную таблицу в Django, работает отлично, но если я пытаюсь добавить новую запись (так что URL будет /admin/db/table_name/add/), этот шаблон использует свой собственный нав-бар (я определяю его в моем переопределенном base_site.html), как я хочу, но этот шаблон (опция добавления) не получает список, который, как я полагаю, должен отправить из представления. Должен ли я изменить/переопределить другое представление? Как изменить правильное представление для передачи списка объектов, как я сделал для /admin/table_name/?

ответ

1

changelist_view предназначен для отображения таблицы элементов модели.

Если вы добавляете новый элемент или редактируете существующий элемент, вам необходимо переопределить add_view или change_view соответственно.

+0

Это была идея. Спасибо, госпожа, сегодня я не вижу ничего, плохой день ... Но ты заставляешь меня улыбаться. Благодаря!! –