如何向所有管理员网页添加额外的上下文?
我使用默认的Django Admin作为我的管理部分。
下面是admin的url条目:
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
我的应用使用以下方式注册其标准视图模型:
admin.site.register(Tag, TagAdmin)
我的问题是,我想在管理模板标题栏显示一个额外的字段,我不知道如何添加这个额外的上下文。
我的第一个赌注是将其添加到如下URL模式中:
urlpatterns = [
url(r'^admin/', admin.site.urls, {'mycontext': '123'}),
]
但这会产生一个错误:
TypeError at /admin/tickets/event/4/change/
change_view() got an unexpected keyword argument 'mycontext'
你能给予我一些建议吗?我真的不想修改我必须插入这个上下文的每个AdminModel类,因为我在每个管理页面上都需要它。
谢谢。
2条答案
按热度按时间vddsk6oq1#
找到解决方案,网址注册必须为:
它是字典内部的上下文字典,以
'extra_context'
作为键。bkkx9g8r2#
另一种技术更复杂,但允许每个请求有不同的上下文(可能在OP时不可用):
my_project/admin.py
(如果缺失则创建)settings.py
replace / extend admin类代码取自官方文档,只是这些代码都在一个文件中。