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.
tentest/doc/DjangoBlog/djangoblog/admin_site.py

89 lines
4.4 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.

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
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 *
from django.contrib.admin import AdminSite #wr 导入Django内置的AdminSite基类用于构建管理后台
class DjangoBlogAdminSite(AdminSite):
"""
自定义管理站点类继承自Django的AdminSite
用于个性化配置博客系统的管理后台(如标题、权限控制等)
"""
#wr 管理后台页面顶部的标题(显示在登录页和管理首页的顶部横幅)
site_header = 'djangoblog administration'
#wr 管理后台的页面标题(显示在浏览器标签页上)
site_title = 'djangoblog site admin'
def __init__(self, name='admin'):
"""
初始化方法,调用父类的初始化逻辑
:param name: 管理站点的标识名称,默认使用'admin'与Django默认管理站点名称一致便于路由匹配
"""
super().__init__(name)
def has_permission(self, request):
"""
控制访问管理后台的权限校验
仅允许超级用户is_superuser为True访问管理后台
:param request: 当前HTTP请求对象包含用户信息等
:return: 布尔值True表示有权限访问False表示无权限
"""
return request.user.is_superuser
#wr 创建自定义管理站点的实例,名称为'admin'与Django默认管理站点标识一致便于在urls.py中配置路由
admin_site = DjangoBlogAdminSite(name='admin')
#wr 以下为注册模型到自定义管理站点:
#wr 将数据模型与对应的Admin配置类绑定使模型在管理后台可见并可操作
#wr 注册文章模型(Article)及其实例配置类(ArticlelAdmin),用于管理博客文章
admin_site.register(Article, ArticlelAdmin)
#wr 注册分类模型(Category)及其实例配置类(CategoryAdmin),用于管理文章分类
admin_site.register(Category, CategoryAdmin)
#wr 注册标签模型(Tag)及其实例配置类(TagAdmin),用于管理文章标签
admin_site.register(Tag, TagAdmin)
#wr 注册链接模型(Links)及其实例配置类(LinksAdmin),用于管理友情链接
admin_site.register(Links, LinksAdmin)
#wr 注册侧边栏模型(SideBar)及其实例配置类(SideBarAdmin),用于管理网站侧边栏内容
admin_site.register(SideBar, SideBarAdmin)
#wr 注册博客设置模型(BlogSettings)及其实例配置类(BlogSettingsAdmin),用于管理博客全局设置
admin_site.register(BlogSettings, BlogSettingsAdmin)
#wr 注册命令日志模型(commands)及其实例配置类(CommandsAdmin),用于管理系统命令执行记录
admin_site.register(commands, CommandsAdmin)
#wr 注册邮件发送日志模型(EmailSendLog)及其实例配置类(EmailSendLogAdmin),用于管理邮件发送记录
admin_site.register(EmailSendLog, EmailSendLogAdmin)
#wr 注册自定义用户模型(BlogUser)及其实例配置类(BlogUserAdmin),用于管理网站用户
admin_site.register(BlogUser, BlogUserAdmin)
#wr 注册评论模型(Comment)及其实例配置类(CommentAdmin),用于管理文章评论
admin_site.register(Comment, CommentAdmin)
#wr 注册第三方登录用户模型(OAuthUser)及其实例配置类(OAuthUserAdmin),用于管理第三方登录用户
admin_site.register(OAuthUser, OAuthUserAdmin)
#wr 注册第三方登录配置模型(OAuthConfig)及其实例配置类(OAuthConfigAdmin),用于管理第三方登录平台配置
admin_site.register(OAuthConfig, OAuthConfigAdmin)
#wr 注册位置追踪日志模型(OwnTrackLog)及其实例配置类(OwnTrackLogsAdmin),用于管理位置追踪记录
admin_site.register(OwnTrackLog, OwnTrackLogsAdmin)
#wr 注册站点模型(Site)及其实例配置类(SiteAdmin)用于管理多站点配置Django自带的sites框架
admin_site.register(Site, SiteAdmin)
#wr 注册操作日志模型(LogEntry)及其实例配置类(LogEntryAdmin),用于管理用户在管理后台的操作记录
admin_site.register(LogEntry, LogEntryAdmin)