dim*_*rik 12 python django django-admin
我有基于Django和JS应用程序构建的REST API.两者都在不同的领域.如何以这种方式更改django admin"查看网站"链接,以便它将打开JS应用程序?我试图通过绝对链接(https://docs.djangoproject.com/es/1.10/ref/contrib/admin/#django.contrib.admin.AdminSite.site_url),但看起来它不起作用 - 只允许的相对路径
Nit*_*ain 12
我更喜欢重置admin.site.site_urlinurls.py以及其他站点更改(而不是在admin.py文件中执行此操作,因为项目可能具有多个 admin.py)
# urls.py
admin.site.site_url = '' # Removes the 'View Site' link
admin.site.site_header = 'My Site'
Run Code Online (Sandbox Code Playgroud)
Ham*_*iou 11
在Django 1.11.5中,似乎:
from django.contrib import admin并且
admin.site.site_url = 'https:....'在admin.py文件中就足够了
默认情况下,“VIEW SITE”指向“/”,即 localhost:8000(假定默认设置)。
要更改它,请使用(在 admin.py 中):
admin.site.site_url = "/mySite"
Run Code Online (Sandbox Code Playgroud)
在 Django 2.1 上测试
我可以想出两种解决方案。
首先,您可以使用自定义模板 admin/base.html。但是,通读默认模板时,您必须复制粘贴大量代码才能更改链接,这似乎有点矫枉过正。
另一种解决方案涉及覆盖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')
Run Code Online (Sandbox Code Playgroud)
your_project/urls.py
from django.conf.urls import url
from myapp.admin import admin_site
urlpatterns = [
url(r'^myadmin/', admin_site.urls),
]
Run Code Online (Sandbox Code Playgroud)
您应该使用自定义管理员注册所有模型,而不是 Django 的默认设置:
from your_app.admin import admin_site
admin_site.register(MyModel)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6276 次 |
| 最近记录: |