DjangoAsyncAdmin 6.13.0
A second development project based on SimplePro for out of print version 6.5.2
Requires Python: >=3.6

# DjangoAsyncAdmin
Django 新的动态Admin , 具有异步请求, 异步列表页刷新和加载, UI更加美观. 

基于vue2+ElementUI2.X来对传统的DjangoAdmin进行重写. 非常易于使用, 便于快速搭建高性能后台管理.

基于[`SimplePro:6.5.2`](https://github.com/newpanjing/simplepro) 的二开项目, 明文代码，免授权，免激活。

[![](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Haoke98/DjangoAsyncAdmin)
[![Gitee](https://img.shields.io/badge/Gitee-C71D23?style=for-the-badge&logo=gitee&logoColor=white)](https://gitee.com/sadam98/DjangoAsyncAdmin)
![](https://img.shields.io/badge/Django-092E20?style=for-the-badge&logo=django&logoColor=white)
![](https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vue.js&logoColor=4FC08D)
![](https://img.shields.io/badge/Google_chrome-4285F4?style=for-the-badge&logo=Google-chrome&logoColor=white)

![](https://img.shields.io/github/followers/Haoke98.svg?style=social&label=Follow&maxAge=2592000)
![](https://img.shields.io/github/license/Haoke98/DjangoAsyncAdmin.svg)
![](https://img.shields.io/github/downloads/Haoke98/DjangoAsyncAdmin/total.svg)
![](https://img.shields.io/github/forks/Haoke98/DjangoAsyncAdmin.svg)
![](https://img.shields.io/github/stars/Haoke98/DjangoAsyncAdmin.svg)
![](https://img.shields.io/github/watchers/Haoke98/DjangoAsyncAdmin.svg)
![GitHub language count](https://img.shields.io/github/languages/count/Haoke98/DjangoAsyncAdmin)
![GitHub search hit counter](https://img.shields.io/github/search/Haoke98/DjangoAsyncAdmin/django)
![GitHub top language](https://img.shields.io/github/languages/top/Haoke98/DjangoAsyncAdmin)
![GitHub contributors](https://img.shields.io/github/contributors/Haoke98/DjangoAsyncAdmin)


![](http://ForTheBadge.com/images/badges/made-with-python.svg)
[![forthebadge](https://haoke98.github.io/DjangoAsyncAdmin/static/MADE%20WITH-JetBrains-PyCharm.svg)](https://forthebadge.com)

## 灵感来历
* thinkPHP
* simpleUI
* simplePro
## Demo
* [数字化世界](https://github.com/Haoke98/AllKeeper)
![](https://haoke98.github.io/DjangoAsyncAdmin/static/digital_world_banner.png)
* [AI实验室](#)
![](https://haoke98.github.io/DjangoAsyncAdmin/static/silk_road_ai_banner.png)
* [过程可视化数据处理引擎](#)
![](https://haoke98.github.io/DjangoAsyncAdmin/static/%E6%88%AA%E5%B1%8F2023-12-06%2017.02.10.png)

## 功能
<table>
<tr><td>功能</td><td>次项</td><td>子项</td><td>状态</td></tr>
<tr><td>列表优化</td><td>前后端分离加载数据</td><td>·········</td><td>✅</td></tr>
<tr><td>可视化首页设计</td><td>·········</td><td>·········</td><td>✅</td></tr>
<tr><td>众多符合国人的主题皮肤设计</td><td>·········</td><td>·········</td><td>✅</td></tr>
<tr><td rowspan="8">丰富的组件库</td><td>几乎全部element-ui组件的集成</td><td>·········</td><td>✅</td></tr>
<tr><td rowspan="3">种类丰的富编辑器</td><td>富文本编辑器</td><td>✅</td></tr>
<tr><td>Markdown编辑器</td><td>✅</td></tr>
<tr><td>Json编辑器</td><td>✅</td></tr>
<tr>
<td rowspan="2">媒体组件</td>
<td>图片上传组件</td><td>✅</td>
</tr>
<tr><td>视频播放组件</td><td>✅</td></tr>
<tr><td rowspan="2">高π级组件</td><td>地图组件</td><td>✅</td></tr>
<tr><td>密码输入组件</td><td>✅</td></tr>
<tr><td rowspan="4">支持自定义</td><td>自定义按钮</td><td>·········</td><td>✅</td></tr>
<tr><td>自定义菜单</td><td>·········</td><td>✅</td></tr>
<tr><td>自定义权限</td><td>·········</td><td>✅</td></tr>
<tr><td>自定义对话框</td><td>·········</td><td>✅</td></tr>
<tr><td>·········</td><td>·········</td><td>·········</td><td>✅</td></tr>
<tr><td>权限优化</td><td>·········</td><td>·········</td><td>✅</td></tr>
</table>

## 开发计划
- [ ] 把GoView引入进来并当作集成式可视化面板设计工具
- [ ] 重写基于DEFAULT_FILE_STORAGE的文件上传以便于Django项目中DEFAULT_FILE_STORAGE切换成其他的FILE_STORAGE时也能轻松介入并支持.
- [ ] 重写VideoField字段,重新实现视频组件
- [ ] 实现MultiImageField多图组件.
- [ ] 实现表单联动性, 即表单中不同字段之间的联动性.
- [ ] 渐进式推进前后端分离化, 提高人机交互体验感和操作便利性, 渐进式删减后端部分的视图功能(后端渲染), 改成接口服务.
- [ ] 实现前段和后端保持一个WS通信, 实现后端主动发起一些`pop up`, 比如一些两步验证, 需要收到后端收到信号才主动反馈到前面才行.
- [ ] 实现自动给指定的(满足聚合条件的)部分字段在列表上方给出聚合结果的Echarts图.

## 使用方法
### 基础
* 组件文档 [DjangoAsyncAdmin Components Docs](https://haoke98.github.io/DjangoAsyncAdmin/components.html)
* 打包及发布文档 [Package And Deploy](https://haoke98.github.io/DjangoAsyncAdmin/build.html)
* 安装配置 [临时参考](https://www.mldoo.com/docs/simplepro/guide/project_config.html)
### 进阶配置
* 全局配置 [临时参考](https://www.mldoo.com/docs/simplepro/config/global/)
* Admin配置 [临时参考](https://www.mldoo.com/docs/simplepro/config/admin/field.html)
* 主题配置 [临时参考](https://www.mldoo.com/docs/simplepro/config/theme.html)
* JS-SDK [临时参考](https://www.mldoo.com/docs/simplepro/config/jssdk.html)
* 自定义权限 [临时参考](https://www.mldoo.com/docs/simplepro/config/permissions.html)
* 可视化图标 [临时参考](https://www.mldoo.com/docs/simplepro/config/chat.html)
* 富文本插件 [临时参考](https://www.mldoo.com/docs/simplepro/config/editor.html)
### 常见问题
* 静态文件 [临时参考](https://www.mldoo.com/docs/simplepro/faq/static.html)
* 安装问题 [临时参考](https://www.mldoo.com/docs/simplepro/faq/install.html)
* 安装问题 [临时参考](https://www.mldoo.com/docs/simplepro/faq/install.html)

### 安装
#### pip安装
```shell
pip install DjangoAsyncAdmin -U
```
>如果您安装比较慢，可以使用中科大提供的镜像进行加速
```shell
pip install DjangoAsyncAdmin -U -i https://pypi.mirrors.ustc.edu.cn/simple/
```
#### 源码安装
##### 1.克隆项目到本地
```shell
git clone https://github.com/Haoke98/DjangoAsyncAdmin.git
```
##### 2.生成安装包
进入到项目跟目录

```shell
python setup.py sdist bdist_wheel
```

##### 3.安装

```shell
pip install /path/to/your_project/dist/DjangoAsyncAdmin-6.5.4.tar.gz
```

注意：⚠️ 其中`/path/to/your_project`转成你的项目路径（相对路径/绝对路径）

## 目录结构说明

| 目录              | 备注       |
|-----------------|----------|
| bawa            |
| components      |组件，存放模型字段和表单字段
| editor          |编辑器，MD编辑器，UE富文本编辑器，JSON编辑器等等
| group           |
| locale          |多种语言包目录，明文和二进制文件不需要处理
| management      |
| monitor         |
| static          |静态资源目录，不需要处理
| templates       |模版目录，不需要处理
| templatetags    |
| \_\_init\_\_.py |
| action.py       |
| apps.py         |
| apps.py         |
| conf.py         |
| conf.py         |
| core.so         | 转化后保存到core.py中
| decorators.py   |
| dialog.py       |
| filters.py      |
| forms.py        |
| hanlers.py      | 去掉了加载core.so文件的部分，增加了 `from core.py import *`
| middlewares.py  |
| models.py       | 基本模型文件
| urls.py         |
| utils.py        |

## 新增功能日志
版本说明：

> 标准的版本号必须（MUST）采用 X.Y.Z 的格式，其中 X、Y 和 Z 为非负的整数，且禁止（MUST NOT）在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须（MUST）以数值来递增。例如：1.9.1 -> 1.10.0 -> 1.11.0。
> 
> 修订号 Z（x.y.Z | x > 0）必须（MUST）在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。
> 
> 次版本号 Y（x.Y.z | x > 0）必须（MUST）在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用时也必须（MUST）递增。也可以（MAY）在内部程序有大量新功能或改进被加入时递增，其中可以（MAY）包括修订级别的改变。每当次版本号递增时，修订号必须（MUST）归零。


<table>
<tr>
<td>版本</td><td colspan="2">说明</td>
</tr>

<tr>
<td rowspan="2">6.11.0</td>
<td colspan="2">
    1. 增加BaseAdmin模型。并实现了用户名和密码等特殊数据在列表中特殊处理显示并拥有特殊GUI。<br>
<img src="https://haoke98.github.io/DjangoAsyncAdmin/static/%E6%88%AA%E5%B1%8F2023-12-17%2021.31.01.png"/>
    
</td>
</tr>
<tr>
<td colspan="2">2. 增加了FieldOptions来提供了部分数据字段的推荐FieldOption(align,min_width,..等配置）。</td>
</tr>

<tr>
<td rowspan="2">6.10.0</td>
<td colspan="2">
    1. 在 field_options 中新增参数 show_overflow_tooltip 来实现了当字段的值超过当前列的宽度时隐藏超过部分并通过title来完整显示的功能。<br>
<img src="https://haoke98.github.io/DjangoAsyncAdmin/static/%E6%88%AA%E5%B1%8F2023-12-17%2021.32.16.png"/>
</td>
</tr>
<tr>
<td colspan="2">2. 实现了可视化图表设计结果的保存格式化输出并存储于项目的根目录而并非压缩存储在运行时目录。</td>
</tr>


<tr>
<td rowspan="1">6.9.0</td>
<td colspan="2">
实现了<a href="https://haoke98.github.io/DjangoAsyncAdmin/components.html#%E5%AF%86%E7%A0%81%E7%BB%84%E4%BB%B6">密码组件（PasswordInputField）</a>.
<br/>
<img src="https://haoke98.github.io/DjangoAsyncAdmin/static/截屏2023-11-15%2016.20.58.png"/>
</td>
</tr>

<tr>
<td rowspan="1">6.8.0</td>
<td colspan="2">
实现了<a href="https://haoke98.github.io/DjangoAsyncAdmin/components.html#json%E7%BC%96%E8%BE%91%E5%99%A8">Json编辑器（JsonTextField）</a>.
<br/>
<img src="https://haoke98.github.io/DjangoAsyncAdmin/static/json_text_field.png"/>
</td>
</tr>

<tr>
<td>6.7.0</td>
<td colspan="2">增加了基本类BaseModel和BaseModelWithShowRate，减少开发过程中反复进行一些基本字段和属性的设计, 提高设计模型的效率.</td>
</tr>


<tr>
<td>6.6.0</td>
<td colspan="2">去掉了授权和激活状态的验证机制，从比可免授权免激活，免费使用。</td>
</tr>


<tr>
<td rowspan="2">6.5.4</td>
<td colspan="2">升级并优化了后台管理登录页面中的标题和LOGO的展示.</td>
</tr>
<tr>
<td><img src="https://haoke98.github.io/DjangoAsyncAdmin/static/%E6%88%AA%E5%B1%8F2023-10-07%2005.15.43.png"/></td>
<td><img src="https://haoke98.github.io/DjangoAsyncAdmin/static/%E6%88%AA%E5%B1%8F2023-10-07%2005.04.21.png"></td>
</tr>

<tr>
<td>6.5.3</td>
<td colspan="2">实现了列表页中的列表表头和表格底部的合计栏不动，表格bodyscroll的效果.</td>
</tr>

</table>

## 开源许可证

本仓库的代码依照 Apache-2.0 协议开源。本项目对学术研究完全开放，也可申请免费的商业使用授权。申请授权，合作和其他问题请联系 <1903243975@qq.com>。

## 引用

```
@misc{2023DjangoAsyncAdmin,
    title={DjangoAsyncAdmin},
    author={Sadam·Sadik},
    howpublished = {\url{https://github.com/Haoke98/DjangoAsyncAdmin}},
    year={2023}
}
```
## 联系我们

* QQ讨论群：940505194
* QQ邮箱：1903249375@qq.com

<img width="280" src="https://github.com/user-attachments/assets/b8f1d843-1683-4396-b880-35870d07ab51" />


## 鸣谢 & 引用

Thanks to [newpanjing](https://github.com/newpanjing/simpleui) for simpleui

Thanks to [newpanjing](https://github.com/newpanjing/simplepro) for simplepro