在 django 中添加管理索引页面的链接

use*_*300 5 django django-templates

一个页面如何链接到django的管理页面?我尝试更改 base.html 页面,但它已反映到管理的所有 html 页面上。这可以仅链接到列出所有应用程序的管理索引页面吗?

小智 5

您必须覆盖Django管理 index.html页面

第一步:

在模板文件夹中创建新文件,例如将其命名为“ index.html ”。例如,文件路径将类似于:“ YOUR_PROJECT/templates/admin/index.html ”并复制以下代码:

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

{% block content %}
<h1>YOUR EXTRA CODE</h1>
{{ block.super }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

第二步:

在 YOUR_MAIN_PROJECT 文件夹中创建新文件 - 以及settings.py - 将其命名为admin.py并复制以下代码:

from django.contrib.admin import AdminSite


class CustomAdmin(AdminSite):
    index_template = 'admin/base_site.html'


custom_admin_site = CustomAdmin(name='admin')
Run Code Online (Sandbox Code Playgroud)

第三步:

在 YOUR_APP admin.py文件中放入以下代码:

from YOUR_MAIN_PROJECT.admin import custom_admin_site
from .models import YOUR_MODEL_1, YOUR_MODEL_2

custom_admin_site.register(YOUR_MODEL_1)
custom_admin_site.register(YOUR_MODEL_2)
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助,感谢您的回复


seb*_*ebb 1

<a href="{% url 'admin:index' %}">Admin panel</a>
Run Code Online (Sandbox Code Playgroud)

但你必须在 URLS.py 中添加 admin.site.urls

url(r'^admin/', include(admin.site.urls)),
Run Code Online (Sandbox Code Playgroud)

但是,如果您尝试在您的网站之一中呈现管理网站(比方说索引):

url(r'', include(admin.site.urls)),
Run Code Online (Sandbox Code Playgroud)

这应该够了吧

  • @SebastianBurzyński:与其修改库位置中的模板,不如将其复制到您的项目中并进行修改。这样,如果 Django 升级或重新安装,您就不会丢失它。 (4认同)