在Django中,要将主页链接添加到管理员界面,可以按照以下步骤操作:
urls.py
文件中,创建一个名为home
的URL模式,指向主页视图函数。例如:from django.urls import path
from . import views
urlpatterns = [
# ...其他URL模式...
path('', views.home, name='home'),
]
views.py
文件中,创建一个名为home
的视图函数,该函数将返回主页的内容。例如:from django.shortcuts import render
def home(request):
return render(request, 'app/home.html')
admin.py
文件中,创建一个名为AdminSite
的子类,并覆盖get_urls
方法,以添加主页链接。例如:from django.contrib import admin
from django.urls import path
from django.utils.html import format_html
class CustomAdminSite(admin.AdminSite):
def get_urls(self):
urls = super().get_urls()
custom_urls = [
path('', self.admin_view(self.home_view), name='home'),
]
return custom_urls + urls
def home_view(self, request):
return render(request, 'admin/home.html')
admin_site = CustomAdminSite(name='custom_admin')
templates/admin/base_site.html
文件中,修改导航栏,添加主页链接。例如:{% extends "admin/base.html" %}
{% block extrahead %}
{{ block.super }}
<style>
#header {
background-color: #007bff;
}
#header h1 a {
color: white;
}
</style>
{% endblock %}
{% block branding %}
<a href="{% url 'custom_admin:home' %}" class="logo">
<img src="{% static 'admin/img/logo-header.svg' %}" alt="Logo">
<span>My Website</span>
</a>
{% endblock %}
{% block nav-global %}{% endblock %}
{% block notifications %}
{% if messages %}
<ul class="messagelist">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{% if message.level_tag == 'error' %}<strong>{{ _("Error") }}:</strong> {% endif %}
{{ message|capfirst }}
</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
现在,在Django管理员界面中,导航栏应该会显示一个指向主页的链接。点击该链接将重定向到主页视图。
领取专属 10元无门槛券
手把手带您无忧上云