作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用管理员中的自定义字符串动态替换“站点管理”。我已经出于其他目的覆盖了“base.html”,但现在我需要将一个变量传递给此模板以替换 {{ title }}
中的
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
我从this question看到可以通过覆盖 changelist_view
并在模型管理中添加 extra_context
来将变量传递到更改列表模板,但是如何将额外的上下文传递给“main”管理员页面”?
最佳答案
index()
View 位于 django.contrib.admin.site.AdminSite
类中,并且也支持 extra_context
,您可以覆盖它,类似于:
def index(self, *args, **kwargs):
return admin.site.__class__.index(self, extra_context={'title':'customized title'}, *args, **kwargs)
admin.site.index = index.__get__(admin.site, admin.site.__class__)
您还可以直接覆盖 AdminSite
并使用 customized_site
而不是 admin.site
:
class CustomizedAdminSite(AdminSite):
def index(self, *args, **kwargs):
return super(CustomizedAdminSite, self).index(extra_context={...}, *args, **kwargs)
customized_site = CustomizedAdminSite()
如果您想在所有管理页面中都有title
,最好使用context processor或者如果可以的话自定义一些模板标签。
关于django - 如何在 Django 管理中动态更改 "Site administration"字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225163/
我是一名优秀的程序员,十分优秀!