Django+SimpleUI(django simpleui 自定义菜单)

网友投稿 1788 2022-08-31


Django+SimpleUI(django simpleui 自定义菜单)

1.安装

pip install django-simpleui -i 修改project的setting文件,在INSTALLED_APPS 首行引入simple应用 INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ... ]

3.字符集及时区设置

# 修改project的setting文件LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'USE_TZ = False # 这里务必调整为False,否则时区设置无效

4.设置静态资源及debug

DEBUG=TrueSTATIC_URL = '/astatic/' # 浏览器直接访问静态文件STATIC_ROOT = os.path.join(BASE_DIR, 'astatic') # 开发环境不需要(线上:python manage.py collectstatic 复制到该路径下)python3 manage.py collectstatic 将静态资源克隆到项目的静态资源目录下

5.数据库连接配置

# 这里以postgresql数据库为例,通常建议使用mysql数据库,多数据库连接不在此处讨论# postgresql## 安装postgresql驱动pip install psycopg2-binary#pip install psycopg2## 这里需要设置postgresql的schema信息,通过options字典指定配置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME' : 'moon', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST':'127.0.0.1', 'PORT': '5432', 'OPTIONS': { 'options': '-c search_path=myapp' }, }}# mysql## 安装mysql驱动pip install pymysql## init文件引入pymysql 用于代理django认可的mysql驱动,同时由于django的版本问题对pymysql的版本存在要求需要增加一个版本欺骗动作import pymysqlpymysql.version_info = (1, 3, 13, "final", 0)pymysql.install_as_MySQLdb()## setting增加mysql连接串配置信息DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'jay_django_test', 'HOST':'127.0.0.1', 'USER':'root', 'PASSWORD':'qweasd', 'PORT':'3306', }}

6.执行admin迁移

python manage.py migrate

7.创建admin超级管理员

python manage.py createsuperuser

8.执行迁移

python manage.py makemigrationspython manage.py migrate

admin首页布局设置

# 如上图所示,首页基础展示项目由三个部分组成,往往我们需要对首页进行定制重写,这里我们先把这几个展示模块先关闭# project的setting文件最后追加如下设置,即可关闭以上几个模块以及信息采集模块SIMPLEUI_HOME_INFO = FalseSIMPLEUI_HOME_QUICK = FalseSIMPLEUI_HOME_ACTION = FalseSIMPLEUI_ANALYSIS = False# SIMPLEUI_HOME_TITLE = '百度一下你就知道' # 【首页】按钮文案配置SIMPLEUI_HOME_PAGE = '# 可用于嵌入其他链接,这里可以直接方便的嵌入报表链接SIMPLEUI_HOME_ICON = 'el el-icon-platform-eleme'

列表页查询定制:

# admin文件中定义展示页面,后续方便页面管理,可以独立文件,通过import方式引入进行注册from myapp.models import job_detail@admin.register(job_detail)class job_detail(admin.ModelAdmin): # 设置页面可以展示的字段 list_display = ('JOB_TYPE', 'JOB_NAME','JOB_COMMENT', 'IN_PARA','IN_PARA_COMMENT', 'OUT_PARA','OUT_PARA_COMMENT') # 默认不配置的话,第一个字段会存在链接到记录编辑页面 # list_display_links = None list_display_links = ('JOB_NAME',) # 设置过滤选项 list_filter = ('JOB_TYPE', 'CREATED_TIME',) # 每页显示条目数 缺省值100 list_per_page = 1 # show all页面上的model数目,缺省200 # list_max_show_all = 200 # 设置可编辑字段 如果设置了可以编辑字段,页面会自动增加保存按钮 list_editable = ('IN_PARA_COMMENT',) # 按日期月份筛选 该属性一般不用 # date_hierarchy = 'CREATED_TIME' # 按发布日期降序排序 ordering = ('-CREATED_TIME',) # 搜索条件设置 search_fields = ('JOB_NAME',) # 表头字段显示中文名称,这里需要修改models文件,在定义字段的时候增加别名 # eg1:JOB_NAME = models.CharField('任务名称',max_length=128) # eg2: name = models.CharField(max_length=30,verbose_name=u"姓名") # 字段关联展示 ## 场景1、关联其他表的数据展示,此处外键展示不做演示,生产环境尽量减少外键使用 ## 场景2、枚举信息转义展示 ### 此处需要在model定义页面通过枚举值转义配置对应展示中文信息,参考model模块代码设置 """ 这种禁用编辑链接的放法只是不让它在页面中显示,即把超链接去掉了, 但是还是可以通过手动输入url的方式来进入编辑页面。 不过可以配合设置fieldsets或者readonly_fieldss来达到目的 注意:这里建议删除按钮要禁用掉,否则只有拥有view权限的人员依然可以进行删除动作,或者需要进行人员角色判断 """ def has_add_permission(self, request): # 禁用添加按钮 return True def has_delete_permission(self, request, obj=None): # 禁用删除按钮 return False

更多可参考:​​Django+SimpleUI快速开发指南 - 知乎 (zhihu.com)​​


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django之跨域(跨域 java)
下一篇:Java内存泄漏问题排查与解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~