为每个 Django 管理页面添加上下文 [英] Add context to every Django Admin page

查看:21
本文介绍了为每个 Django 管理页面添加上下文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何向所有管理网页添加额外的上下文?

How do I add extra context to all admin webpages?

我对网站的管理部分使用默认的 Django Admin.

I use default Django Admin for my admin part of a site.

这是管理员的 url 条目:

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.

我的第一个赌注是将它添加到如下网址模式中:

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 管理页面添加上下文的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆