simpleui美化admin+Admin自定义action


[TOC]

写在前面

今天在检索Django开源项目的时候发现了一个漂亮的管理后台,而且只需要pip安装一下,再将app注册到settings.py中,原本简陋的后台就被取代了,简直是不能更贴心。

项目地址

Gitee
Github
simpleui官方文档

如何使用

安装:
pip install django-simpleui
注册app:

#settings.py,注意要放到第一行
INSTALLED_APPS = [
      'simpleui',
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      ...
]

是不是很简单~感谢开源世界,我们才可以免费用上这么棒的轮子!

我的回合

当你登录后台,会发现首页有一块内容展示simpleui的版本、项目地址等,也许你想把它隐藏掉(雾),毕竟不是在前端,能看到的也就一小撮人


作者应该老早就想到有些不太可爱的用户会去动这个,为了不让大家翻箱倒柜的去改html代码,只需要在settings.py中添加一行:
SIMPLEUI_HOME_INFO = False
想要展示的时候再改为True


自定义action

将需要的命令以函数的形式写到admin.py中,以下是我写的三个修改music模型的action

#禁用选中的音乐,在APlayer的播放列表中将不再显示
def close_music_status(modeladmin,request,queryset):
    queryset.update(status=False)
#启用选中的音乐
def open_music_status(modeladmin,request,queryset):
    queryset.update(status=True)
"""
变更音乐性质,纯音乐/非纯音乐
因为是布尔值,所以更改起来较为简单
上面“启用/禁用”功能也可以整合到一起
"""
def change_music_status(modeladmin,request,queryset):
    for music in queryset:
        music.peace_music = not music.peace_music
        music.save()

#更改描述
close_music_status.short_description = '禁用所选音乐'
open_music_status.short_description = '启用所选音乐'
change_music_status.short_description = '变更所选音乐性质'

启用自定义action:

class MusicAdmin(admin.ModelAdmin):
    ...
    actions = [open_music_status,close_music_status,change_music_status]
    ...

写在后面

上网冲冲浪就能找到好用的东西,真不错。之前费了好大劲去改xadmin,最后还是放弃了。