我有建立在Django上的REST API和JS应用程序。两者都在不同的域中。如何改变Django管理员的 "查看网站 "链接,使其能够打开JS应用程序?我试着把绝对链接 ( https://docs.djangoproject.com/es/1.10/ref/contrib/admin/#django.contrib.admin.AdminSite.site_url ),但看起来它不起作用 - 只允许相对路径
在Django 1.11.5中,似乎:
from django.contrib import admin
和
中的
admin.site.site_url = 'https:....'
。
admin.py
file is enough
我更喜欢在
urls.py
中重置
admin.site.site_url
,以及其他网站的更改(而不是在
admin.py
文件中这样做,因为一个项目可以有两个admin.py。)
# urls.py
admin.site.site_url = '' # Removes the 'View Site' link
admin.site.site_header = 'My Site'
这是很巧妙的,我用它来定制额外的管理界面组件。
admin.site.site_title = "Company Title"
、
admin.site.index_title = "Administration Portal"
等。
Clément
:
如果你想删除 "查看网站 "链接,我建议使用
admin.site.site_url = ""
,而不是将变量设置为
None
,因为它的目的是被分配一个字符串值,如果你使用
mypy
,会把它搞乱。
我的项目是在反向代理后面运行的,所以我更新了project/urls.py,加入了以下一行。
admin.site.site_url = f'/{settings.URL_PREFIX}'
和
URL_PREFIX='project-name'
是在settings.py中定义的。
Arindam Roychowdhury
发布于
2022-08-13
0
人赞同
默认情况下,"VIEW SITE "指向"/",即localhost:8000(假定为默认设置)。
要改变它,使用(在admin.py)。
admin.site.site_url = "/mySite"
在Django 2.1上测试
jewles
:
你在哪里添加这个设置?
@jewles...在admin.py中
Назар Топольський
发布于
2022-08-13
0
人赞同
我能想到的解决方案有两个。
首先,你可以使用自定义模板
admin/base.html
。但是,通过阅读默认模板,你将不得不复制粘贴大量的代码只是为了改变一个链接,这似乎是一种矫枉过正。
另一个解决方案涉及
overriding
AdminSite
.替换代码1】有一个叫做
site_url
的属性,似乎改变它就能完成工作。因此,从本质上讲,你可以做这样的事情。
your_app/admin.py
from django.contrib.admin import AdminSite
from .models import MyModel
class MyAdminSite(AdminSite):
site_url = 'https://yourdomain.com'
admin_site = MyAdminSite(name='myadmin')
your_project/urls.py
from django.conf.urls import url
from myapp.admin import admin_site
urlpatterns = [
url(r'^myadmin/', admin_site.urls),
而且你应该用你的自定义管理员注册你的所有模型,而不是Django的默认模型。
from your_app.admin import admin_site
admin_site.register(MyModel)
Tono Kuriakose
发布于
2022-08-13
0
人赞同
查看网站的默认链接是
http://127.0.0.1:8000/
。
我们可以通过在以下文件中注册,将其改为自定义网址
admin.py
admin.site.site_url = "/mySite"
例如:admin.py
from django.contrib import admin
from auth_app.models import profile
# Register your models here.
admin.site.register(profile)
#register link
admin.site.site_url = "/mySite"
Rabeul Hasan
发布于
2022-08-13
0
人赞同
在admin.py中,提到你的自定义路径,如下所示
admin.site.site_url = "/<Your Path>"
如果你的自定义网址是 "https://example.com/dashboard",你必须在你的admin.py中加入以下一行
admin.site.site_url = "/dashboard"
Kai - Kazuya Ito
发布于
2022-08-13
0
人赞同
你可以改变
"VIEW SITE" link
通过改变
"admin.site.site_url"
which is
"/"
默认情况下是这样。
from django.contrib import admin