|
|
"""`xjj`
|
|
|
|
|
|
DjangoBlog 管理站点配置
|
|
|
========
|
|
|
|
|
|
该模块定义了 DjangoBlog 项目的自定义管理站点配置。它继承自 Django 的默认 AdminSite,
|
|
|
并注册了项目中所有需要在管理后台进行管理的模型。
|
|
|
|
|
|
主要功能:
|
|
|
~~~~~~~~
|
|
|
- 创建自定义管理站点
|
|
|
- 设置管理站点的标题和头部显示文本
|
|
|
- 限制只有超级用户才能访问管理站点
|
|
|
- 注册各个应用中的模型到管理站点
|
|
|
|
|
|
注册的模型包括:
|
|
|
~~~~~~~~
|
|
|
- 博客相关:文章、分类、标签、链接、侧边栏、博客设置
|
|
|
- 用户相关:博客用户
|
|
|
- 评论相关:评论
|
|
|
- OAuth 相关: OAuth 用户、 OAuth 配置
|
|
|
- 其他:命令、邮件发送日志、位置跟踪日志、站点信息、管理日志
|
|
|
|
|
|
使用方式:
|
|
|
~~~~~~~~
|
|
|
通过 admin_site 实例来访问自定义的管理站点。
|
|
|
"""
|
|
|
|
|
|
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 *
|
|
|
|
|
|
|
|
|
class DjangoBlogAdminSite(AdminSite):
|
|
|
"""`xjj`
|
|
|
|
|
|
自定义 Django 管理站点类
|
|
|
|
|
|
继承自 Django 默认的 AdminSite ,用于为 DjangoBlog 项目提供定制化的管理后台
|
|
|
"""
|
|
|
site_header = 'djangoblog administration'
|
|
|
site_title = 'djangoblog site admin'
|
|
|
|
|
|
def __init__(self, name='admin'):
|
|
|
"""`xjj`
|
|
|
|
|
|
初始化管理站点
|
|
|
|
|
|
Args:
|
|
|
name (str): 管理站点的名称,默认为 'admin'
|
|
|
"""
|
|
|
super().__init__(name)
|
|
|
|
|
|
def has_permission(self, request):
|
|
|
"""`xjj`
|
|
|
|
|
|
检查用户是否有访问管理站点的权限
|
|
|
|
|
|
重写了父类的方法,只允许超级用户访问管理站点
|
|
|
|
|
|
Args:
|
|
|
request: HTTP 请求对象
|
|
|
|
|
|
Returns:
|
|
|
bool: 如果用户是超级用户则返回 **True**,否则返回 **False**
|
|
|
"""
|
|
|
return request.user.is_superuser
|
|
|
|
|
|
# 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_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)
|
|
|
|
|
|
admin_site.register(OAuthUser, OAuthUserAdmin)
|
|
|
admin_site.register(OAuthConfig, OAuthConfigAdmin)
|
|
|
|
|
|
admin_site.register(OwnTrackLog, OwnTrackLogsAdmin)
|
|
|
|
|
|
admin_site.register(Site, SiteAdmin)
|
|
|
|
|
|
admin_site.register(LogEntry, LogEntryAdmin)
|