У меня есть класс, который отображает список конфигураций.Django: Расширение контекста представления на основе класса с контекстом администратора
Этот вид добавляется на сайт Django администратора, используя следующий код:
@admin.register(ZbxHostConf)
class ZbxHostConfListViewAdmin(admin.ModelAdmin):
review_template = 'admin/admzbxhostconf_list.html'
def get_urls(self):
urls = super(ZbxHostConfListViewAdmin, self).get_urls()
my_urls = patterns('',
(r'^zbxhostconflist/$', self.admin_site.admin_view(self.review)),
)
return my_urls + urls
def review(self, request):
return ZbxHostConfListView.as_view()(request)
Шаблон расширяет admin/base_site.html
шаблон. Я могу получить доступ к сайту только после входа на сайт администратора Django. К сожалению, шаблон не может получить доступ к контекстным данным, предоставленным администратором.
В документации Django предполагает, будут предоставлены данные контекста непосредственно на TemplateResponse
функции:
def my_view(self, request):
# ...
context = dict(
# Include common variables for rendering the admin template.
self.admin_site.each_context(request),
# Anything else you want in the context...
key=value,
)
return TemplateResponse(request, "sometemplate.html", context)
Для представлений функций на основе имеется возможность в extra_context аргумента, но взгляды класса на основе не обеспечивают этот аргумент. Я предполагаю, что мне нужно изменить функцию get_context_data, но я действительно не понимаю, как я могу предоставить данные контекста администратора функции get_context_data моего представления на основе класса. Какие-либо предложения?
Ну не напрямую. Я только что добавил его для полноты. Но если удаление улучшит вопрос, я сделаю это. –