问题描述
如何为所有管理网页添加额外的上下文?
How do I add extra context to all admin webpages?
我将默认的Django Admin用于网站的管理部分.
I use default Django Admin for my admin part of a site.
这是管理员的网址条目:
Here is an url entry for admin:
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
我的应用程序使用以下方法注册其标准视图模型:
And my apps register their standard view models using:
admin.site.register(Tag, TagAdmin)
我的问题是,我想在管理模板标题栏中显示一个额外的字段,而我不知道如何添加此额外的上下文.
My problem, is that I want to display an extra field in admin template header bar and I have no idea how to add this extra context.
我的第一个选择是将其添加到如下所示的url模式中:
My first bet was adding it in url patterns like below:
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类,因为在每个管理页面上都需要它.
Can you give any suggestion? I really do not want to modify every AdminModel class I have to insert this context, as I need it on every admin page.
谢谢.
推荐答案
找到解决方案,URL注册必须是:
Found the solution, url registration has to be:
urlpatterns = [
url(r'^admin/', admin.site.urls, {'extra_context': {'mycontext': '123'}}),
]
它在以'extra_context'
为键的字典内的上下文字典.
Its a context dictionary inside of a dictionary with 'extra_context'
as a key.
这篇关于将上下文添加到每个Django管理页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!