【Python】Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码)


例如改成'www.baidu.com'

回答

最粗暴的办法,把site-packages/django/contrib/admin/templates/admin/base.html拷贝到你的项目目录/templates/admin/base.html,然后修改href="https://segmentfault.com/q/1010000009877056/%E4%BD%A0%E8%A6%81%E7%9A%84url"

【Python】Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码)

【Python】Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码)

【Python】Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码)

我看了一下django(1.9.8)源码,这个链接确实是源码里(/path/to/python/site-packages/django/contrib/admin/sites.py)写死的 site_url = '/',然后在html(/path/to/python/site-packages/django/contrib/admin/templates/admin/base.html)里引用 href="https://segmentfault.com/q/1010000009877056/{{ site_url }}" ,并没有在settings.py 定一个常量什么的。
你要是实在不想修改源码的话,试试在./settings.py TEMPLATES里最后面增加一个自定义的context_processors,在这里面也定义一个 site_url = '/xxx/' 试试能不能实现(我没有测试过)。
流程:
1、新建一个 self_context_processors.py,内容:

def set_url(request):

return {'site_url': '/xxx/'}

2、在settings TEMPLATE context_processor最下面增加:
'self_context_processors.set_url',

在项目的admin.py文件中,加入:admin.site.site_url = 'www.baidu.com'就可以了

相识问题:https://segmentfault.com/q/10...

在你的AdminSite对象中可以修改

class MyAdminSite(AdminSite):

site_header = '控制台'

site_title = '文件管理'

site_url = '/the/url/to'

...

AdminSite.site_url 属性是1.8版本新增加的

参考文档:AdminSite attributes

How change django admin “view site” link to custom absolute url

以上是 【Python】Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码) 的全部内容, 来源链接: utcz.com/a/80133.html

回到顶部