【问题标题】:Adding link to the admin index page in django在 django 中添加指向管理索引页面的链接
【发布时间】:2015-03-23 13:10:06
【问题描述】:

如何将页面链接到 django 的管理页面? 我曾尝试更改 base.html 页面,但它会反映到管理员的所有 html 页面。这是否可以仅链接到列出所有应用程序的管理员索引页面。

【问题讨论】:

  • 删除多余的内容

标签: django django-templates


【解决方案1】:

您必须覆盖 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 %}

第二步:

在 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')

第三步:

在 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)

希望对您有所帮助,感谢您的回复

【讨论】:

    【解决方案2】:
    <a href="{% url 'admin:index' %}">Admin panel</a>
    

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

    url(r'^admin/', include(admin.site.urls)),
    

    但是,如果您尝试在您的某个站点(比如说索引)中呈现管理站点:

    url(r'', include(admin.site.urls)),
    

    这应该可以解决问题

    【讨论】:

    • 感谢您的回答。但我不想将管理页面链接到我的 html 页面。 Insetad,我想从管理员访问我的 html 页面。
    • 所以你必须从 contrib.admin 编辑你的模板。如果你使用 virtualnenv,它应该在your_env/local/lib/python_version/django/contrib/admin/templates
    • @SebastianBurzyński:与其在库位置修改模板,不如将其复制到您的项目中并进行修改。这样,如果 Django 升级或重新安装,您就不会丢失它。
    • 正确 ;) 认为这很明显 ;)
    猜你喜欢
    • 2012-04-10
    • 2015-10-05
    • 2015-09-08
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 2021-09-19
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多