You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DjangoBlog/djangoblog/admin_site.py

89 lines
3.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Django博客系统的Admin配置模块
# 该模块用于自定义Django管理后台Admin Site包括管理员站点的属性设置、权限控制
# 以及注册系统中各模型到管理后台,实现对数据的可视化管理
# 导入Django内置的AdminSite及相关模型、管理类
from django.contrib.admin import AdminSite
from django.contrib.admin.models import LogEntry
from django.contrib.sites.admin import SiteAdmin
from django.contrib.sites.models import Site
# 导入各应用的Admin配置和模型账号、博客、评论、OAuth等模块
from accounts.admin import *
from blog.admin import *
from blog.models import *
from comments.admin import *
from comments.models import *
from djangoblog.logentryadmin import LogEntryAdmin
from oauth.admin import *
from oauth.models import *
from owntracks.admin import *
from owntracks.models import *
from servermanager.admin import *
from servermanager.models import *
class DjangoBlogAdminSite(AdminSite):
"""
自定义的Django管理站点类继承自AdminSite
用于个性化管理后台的显示信息和权限控制
"""
# 管理后台页面顶部的标题
site_header = 'djangoblog administration'
# 浏览器标签页的标题
site_title = 'djangoblog site admin'
def __init__(self, name='admin'):
"""初始化方法,调用父类构造函数"""
super().__init__(name)
def has_permission(self, request):
"""
重写权限检查方法,控制谁可以访问管理后台
仅允许超级用户is_superuser访问
"""
return request.user.is_superuser
# 以下为注释掉的自定义URL示例如需扩展管理后台URL可启用
# def get_urls(self):
# urls = super().get_urls()
# from django.urls import path
# from blog.views import refresh_memcache
#
# my_urls = [
# path('refresh/', self.admin_view(refresh_memcache), name="refresh"),
# ]
# return urls + my_urls
# 实例化自定义的管理站点
admin_site = DjangoBlogAdminSite(name='admin')
# 注册博客核心模型到管理站点关联对应的Admin配置类
admin_site.register(Article, ArticlelAdmin) # 文章模型
admin_site.register(Category, CategoryAdmin) # 分类模型
admin_site.register(Tag, TagAdmin) # 标签模型
admin_site.register(Links, LinksAdmin) # 链接模型
admin_site.register(SideBar, SideBarAdmin) # 侧边栏模型
admin_site.register(BlogSettings, BlogSettingsAdmin) # 博客设置模型
# 注册服务器管理相关模型
admin_site.register(commands, CommandsAdmin) # 命令模型
admin_site.register(EmailSendLog, EmailSendLogAdmin) # 邮件发送日志模型
# 注册用户模型
admin_site.register(BlogUser, BlogUserAdmin) # 自定义用户模型
# 注册评论模型
admin_site.register(Comment, CommentAdmin) # 评论模型
# 注册OAuth相关模型
admin_site.register(OAuthUser, OAuthUserAdmin) # OAuth用户模型
admin_site.register(OAuthConfig, OAuthConfigAdmin) # OAuth配置模型
# 注册位置追踪相关模型
admin_site.register(OwnTrackLog, OwnTrackLogsAdmin) # 位置日志模型
# 注册站点和日志模型Django内置
admin_site.register(Site, SiteAdmin) # 站点模型
admin_site.register(LogEntry, LogEntryAdmin) # 操作日志模型