You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 3.1后台管理配置VIEW SITE链接在新标签页打开

实现方法

要让Django 3.1后台管理的「VIEW SITE」链接在新标签页打开,只需通过自定义admin模板修改链接属性即可,步骤如下:

1. 确认模板目录配置

确保项目settings.py的TEMPLATES配置中,DIRS已包含项目根目录下的templates文件夹(如果还没配置的话):

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],  # 确保这一行存在
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

2. 创建自定义admin模板文件

在项目的templates目录下新建admin文件夹,然后创建base.html文件,内容如下:

{% extends "admin/base.html" %}

{% block userlinks %}
    {% if site_url %}
        <!-- 添加target="_blank"实现新标签页打开,rel属性是安全最佳实践 -->
        <a href="{{ site_url }}" target="_blank" rel="noopener noreferrer">{% translate 'View site' %}</a> /
    {% endif %}
    {{ block.super }}
{% endblock %}

3. 验证效果

重启Django服务,进入后台管理页面,点击顶部的「VIEW SITE」链接,就会在新标签页打开你配置的site_url地址,同时不会让用户离开已认证的后台会话。

补充说明

  • rel="noopener noreferrer"是安全优化,防止新打开的页面通过window.opener控制原后台页面,避免潜在安全风险。
  • 你之前在urls.py中配置的admin.site.site_url依然生效,模板会直接复用这个变量的值。

内容的提问来源于stack exchange,提问作者skwidbreth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:43:23