1.1 安装simpleui

pip install django-simpleui

1.2 simpleui的相关配置

settings.py中的INSTALLED_APPS中添加相关代码’simpleui.apps.SimpleApp’

1.3 simpleui的后台中文化设置

settings.py中的INSTALLED_APPS进行以下数据设置:

LANGUAGE_CODE = ‘zh-Hans’ TIME_ZONE = ‘Asia/Shanghai’

zh-Hans是简体中文 zh-Hant是繁体中文,如果数据库有UTC的时间,那么可以设置:

USE_TZ = True 改为 USE_TZ = False

1.4 simpleui的app的名称显示

在相关app的apps的其中的相关的Config的类中添加相关操作

verbose_name = ‘用户操作明细管理’

并且在相关的app的init.py中添加相关操作

default_app_config = ‘dict.apps.DictConfig’

1.5 admin的后台显示

在相关app的admin.py的类中添加相关操作

  1. class Invitationsdetaileds(admin.ModelAdmin):
  2. list_per_page = 50 #每页显示的记录的数量
  3. fields = ('UserId', 'UserName', 'DetailedMoney', 'remarks')#后台可以编辑界面显示的字段
  4. list_display = ('UserId', 'UserName', 'DetailedMoney', 'remarks', 'detailedTime', 'InvitationCode')#后台显示界面显示的字段
  5. search_fields = ('UserId',)#筛选的项
  6. ordering = ('-UserId',)#排序的项
  7. list_editable = ['balance', 'BlankCe', 'SumBlance']#可以免进入编辑界面可编辑的项
  8. actions = ['publish_status']#自定义添加动作
  9. site_header = '好医生运维资源管理系统' # 此处设置页面显示标题
  10. site_title = '好医生运维' # 此处设置页面头部标题
  11. """
  12. 也可以在外面进行设置,设置如下:
  13. admin.site.site_header = '修改后'
  14. admin.site.site_title = '哈哈'
  15. """
  16. def publish_status(self, request, queryset):
  17. pass
  18. publish_status.short_description = "定义的动作显示的名称"
  19. admin.site.register(Invitations, Invitationsdetaileds)

1.6 admin的后台相关数据的导出

在admin.py的actions中添加相关的动作

  1. def publish_status(self, request, queryset):
  2. from django.http import HttpResponse
  3. meta = self.model._meta # 用于定义文件名, 格式为: app名.模型类名
  4. field_names = [field.name for field in meta.fields] # 模型所有字段名
  5. response = HttpResponse(content_type='application/msexcel') # 定义响应内容类型
  6. response['Content-Disposition'] = f'attachment; filename={meta}.xlsx' # 定义响应数据格式
  7. from openpyxl import Workbook
  8. wb = Workbook() # 新建Workbook
  9. ws = wb.active # 使用当前活动的Sheet表
  10. ws.append(field_names) # 将模型字段名作为标题写入第一行
  11. for obj in queryset: # 遍历选择的对象列表
  12. for field in field_names:
  13. data = [f'{getattr(obj, field)}' for field in field_names] # 将模型属性值的文本格式组成列表
  14. row = ws.append(data) # 写入模型属性值
  15. wb.save(response) # 将数据存入响应内容
  16. return response
  17. publish_status.short_description = "导出信息"

1.7 admin的后台对相关记录表的相关操作

在admin.py的actions中添加相关的动作

  1. def False__status(self, request, queryset):
  2. for i in queryset.filter():
  3. if i.state == '未完成' or i.state == None:
  4. a = i.DetailedMoney
  5. user_list_id = i.UserId
  6. user_list = user.objects.get(UserId=user_list_id)
  7. user_list.balance += a
  8. # user_list.balance += float(a)
  9. user_list.BlankCe = user_list.balance * 0.7
  10. user_list.save()
  11. i.state = '已完成'
  12. i.save()
  13. else:
  14. pass
  15. False__status.short_description = "测试动作"

1.8 admin页面中设置只读字段

在使用admin的时候,ModelAdmin默认对于model的操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑的。而 readonly_fields 设置之后不管是admin还是其他用户都会变成只读,而我们通常只是想限制普通用户。 这时我们就可以通过重写 get_readonly_fields 方法来实现对特定用户的只读显示。

  1. def get_readonly_fields(self, request, obj=None):
  2. """ 重新定义此函数,限制普通用户所能修改的字段 """
  3. if request.user.is_superuser:
  4. self.readonly_fields = []
  5. return self.readonly_fields

1.9 admin页面克隆静态文件

克隆静态文件:
- DEBUG = True 安全警告:不要在生产中打开调试的情况下运行!
- 运行克隆静态文件命令,克隆静态资源到项目的静态目录,然后交由nginx处理 python manage.py collectstatic

  1. STATIC_ROOT = os.path.join(BASE_DIR, "static")

2.0 admin页面登陆界面的粒子效果

关闭登陆页面的粒子动画:
- False 关闭
- True 开启,默认值

  1. SIMPLEUI_LOGIN_PARTICLES = True

效果如下所示
粒子效果.png

2.1 admin登陆成功后首页的相关信息显示(固定首页为一个网页)

simpleui内置了一个默认的首页,只是由简单的快捷导航与最近操作组成。
- 首页配置:SIMPLEUI_HOME_PAGE
- 首页标题:SIMPLEUI_HOME_TITLE
- 首页图标:SIMPLEUI_HOME_ICON
- 支持element-ui和fontawesome的图标,参考https://fontawesome.com/icons图标

使用事项:三项配置都是选填,不填都会有默认值。

  1. SIMPLEUI_HOME_PAGE = 'https://www.baidu.com'
  2. SIMPLEUI_HOME_TITLE = '百度一下你就知道'
  3. SIMPLEUI_HOME_ICON = 'fa fa-user'

首页信息显示.png

2.2 admin登陆图标跳转

首页顶部首页图标默认跳转地址为/,即根目录。如果需要自定义,请在项目的settings.py中加入设置:设置simpleui 点击首页图标跳转的地址可以设置相对与绝对路径。该地址并无特殊之处,将会调用window.open直接打开该地址。

  1. SIMPLEUI_INDEX = 'https://www.88cto.com'

界面跳转.png

2.4 admin登陆成功后首页的相关信息显示(首页固定为原信息做出修改)

首页默认展示3个模块,服务器信息,快速操作,最近动作,大家可以根据需要来显示或者隐藏某些模块。

  • 自定义SIMPLEUI的Logo:
    • SIMPLEUI_LOGO = “picture_Url”
    • picture_Url:图片的url地址
      • 更多信息请参考:https://www.iconfont.cn/illustrations/index?spm=a313x.7781069.1998910419.3
        1. SIMPLEUI_LOGO = 'https://iconfont.alicdn.com/t/a5bd00d7-baa2-46db-8ce7-12255f8d58e9.png'
        首页logo.png首页logo1.png

        2.5 admin登陆成功后首页的相关信息显示-服务器信息是否显示(首页固定为原信息做出修改)

        是否在首页中显示服务器信息:SIMPLEUI_HOME_INFO
        - False: 隐藏服务器信息
        服务器信息1.png
        - True:显示服务器信息,默认值
        服务器信息.png
        1. SIMPLEUI_HOME_QUICK = False

        2.6 admin登陆成功后首页的相关信息显示-快速操作是否显示(首页固定为原信息做出修改)

        注意事项:仅适用于simpleui内置的默认首页,当设定了自定义的首页信息后,这写效果无法可见
        是否在首页中显示快速操作:SIMPLEUI_HOME_QUICK
        - False: 隐藏服务器信息
        首页-快速编辑1.png
        - True:显示服务器信息,默认值
        首页-快速编辑.png

注意事项:仅适用于simpleui内置的默认首页,当设定了自定义的首页信息后,这写效果无法可见

  1. SIMPLEUI_HOME_ACTION = False

2.7 admin登陆成功后首页的相关信息显示-最近的行动是否显示(首页固定为原信息做出修改)

是否在首页中显示最近的行动:SIMPLEUI_ANALYSIS
- False: 隐藏服务器信息
最近动作-隐藏.png
- True:显示服务器信息,默认值
最近动作-显示.png

  1. SIMPLEUI_ANALYSIS = False

注意事项:仅适用于simpleui内置的默认首页,当设定了自定义的首页信息后,这写效果无法可见

2.8 :后台界面的收集分析

使用分析:SIMPLEUI_ANALYSIS
- True:收集分析,一天只上报一次分析数据。默认为True
- False:不收集分析信息
默认开启,统计分析信息只是为了更好的帮助simpleui改进,并不会读取敏感信息。并且分析数据不会分享至任何第三方。

  1. SIMPLEUI_ANALYSIS = False

2.8 :离线模式是否开启

离线模式:SIMPLEUI_STATIC_OFFLINE
- True:开启离线模式
- False:关闭离线模式,默认值为false
指定simpleui 是否以脱机模式加载静态资源,为True的时候将默认从本地读取所有资源,即使没有联网一样可以。适合内网项目

  1. SIMPLEUI_STATIC_OFFLINE = True

2.9 :是否关闭Loading遮罩层

关闭Loading遮罩层:SIMPLEUI_LOADING
- False:关闭遮罩层
- True:True或None 默认显示加载遮罩层,指定为False 不显示遮罩层。默认显示

  1. SIMPLEUI_LOADING = False

3.0 :修改登陆页文本标题(登陆成功后左上角的文本内容)

  1. from django.contrib import admin
  2. admin.AdminSite.site_header = 'Django-SimpleUI 示例'

粒子效果.png

3.1 :修改url地址中的文本标题

  1. from django.contrib import admin
  2. admin.AdminSite.site_title = 'Django-SimpleUI 示例'

修改标题内容-修改后.png