我有一個基於類的視圖,它只顯示配置列表。Django:使用Admin上下文擴展基於類的視圖的上下文
該視圖是通過使用下面的代碼添加到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 Admin站點後,我才能訪問該站點。不幸的是,該模板無法訪問管理視圖提供的上下文數據。
作爲Django的文檔建議的上下文數據將直接被提供給TemplateResponse
功能:存在extra_context中用參數的可能性,但基於類別的觀點並不提供
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)
對於基於功能的觀點這個說法。我想我必須修改get_context_data函數,但我並不真正瞭解如何將管理上下文數據提供給基於類的視圖的get_context_data函數。有什麼建議麼?
不是直接的。爲了完整起見,我剛添加了它。但如果刪除將改善問題,我會這樣做。 –