素材牛VIP会员
Django admin首页的view_site怎么改成自己想要的url?(尽量不修改django源码)
 Go***ng  分类:Python  人气:1608  回帖:4  发布于6年前 收藏


例如改成'www.baidu.com'

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv3 码奴
阿***盗 页面重构设计 6年前#1

相识问题: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

Lv3 码奴
请***子 站长 6年前#2

我看了一下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="{{ 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',

Lv5 码农
蜗***牛 Linux系统工程师 6年前#3

最粗暴的办法,把site-packages/django/contrib/admin/templates/admin/base.html拷贝到你的项目目录/templates/admin/base.html,然后修改href="你要的url"

Lv6 码匠
so***t0 CEO 6年前#4

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取