我在Django和JS应用程序上构建了REST API。两者都在不同的领域。如何更改django admin"查看网站"以这种方式链接所以它会打开JS应用程序吗?我试图传递绝对链接(https://docs.djangoproject.com/es/1.10/ref/contrib/admin/#django.contrib.admin.AdminSite.site_url),但看起来它不起作用 - 只允许相对路径
答案 0 :(得分:10)
在Django 1.11.5中,似乎:
from django.contrib import admin
和
admin.py 文件中的admin.site.site_url = 'https:....'
就足够了
答案 1 :(得分:5)
我更喜欢在admin.site.site_url
中重置urls.py
,以及其他站点更改(而不是在admin.py
文件中进行重置,因为项目可以具有服务器admin.py)
# urls.py
admin.site.site_url = None # Removes the 'View Site' link
admin.site.site_header = 'My Site'
答案 2 :(得分:3)
我可以提出两种解决方案。
首先,您可以使用自定义模板admin/base.html
。但是,通过阅读默认模板,您只需复制粘贴大量代码即可更改链接,这似乎有点过头了。
另一种解决方案涉及overriding AdminSite
。 AdminSite
有一个名为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)
答案 3 :(得分:2)
默认情况下,“ VIEW SITE”指向“ /”,即localhost:8000(采用默认设置)。
要更改它,请使用(在admin.py中):
admin.site.site_url = "/mySite"
在Django 2.1上测试
答案 4 :(得分: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"