Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
MoCrud详细说明文档
on 2014-12-22
[TOC] #### 概述 MoCrud大致包含几个主要对象: model、admin、operate、template,下面会逐一讲解。MoCrud的基本思想是:默认自动生成标准Crud功能,通过继承的方式实现强大的自定义和操作扩展 #### Model(模型) ##### 模型的定义 模型model可以是peewee的模型类或者继承自peewee的模型 一般的过程是:1. 设计数据库表结构;2. 用peewee根据数据库生成peewee的模型类;3. 在MoCrud中继承生成的peewee模型类 当然前两步可以换过来为:1. 定义peewee模型类;2. peewee根据定义的模型类自动创建数据库表结构;3. 在MoCrud中继承生成的peewee模型类 ##### 模型的扩展 ###### 在继承后重载其中的模型字段 例如 ```python class Broker_Cash_Log_U(Broker_Cash_Log): sex = IntegerField(null=True, verbose_name=u'性别', choices=( (1, u'男'),(2, u'女') ) ) class Meta: db_table = 'broker_cash_log' ``` 上面的例子在继承 **Broker_Cash_Log** 这个 **peewee** 模型后重新定义了 **"sex"** 字段加入了 **"choices"** 配置(这样产生的界面会自动形成下拉选择模式) 注意:继承的模型如果和基类模型使用同一张表需要显式地声明Meta的db_table为使用的数据库表名 ###### 在继承的模型中定义新的成员方法 这个可以用在为列表grid添加额外的扩展字段数据时 例如 ```python class User_Info_U(User_Info): class Meta: db_table = 'user_info' def sum_price(self): return self.priceA + self.priceB def ps_photo(self): html_str = u'''<img height=42 width=42 src="%s">''' return html_str%self.photo ``` #### Admin(界面管理功能的控制器) ##### 定义示例 ```python class User_Info_Admin(ModelAdmin): menu_grup = 'group_user' verbose_name = u'用户' menu_index = 1 columns = ('id', 'uid', 'photo_show', 'nickname', 'sex', 'status', ) method_exclude = ('delete', 'add') add_column_display = { 'photo_show': u'头像', } ``` ##### 配置项说明 ###### visible 值类型:bool 是否隐藏,即不显示在菜单导航中 ###### menu_grup 值类型:string 定义所属的菜单组,不定义则默认到“其他”菜单组里 ###### icon_class 值类型:string 定义菜单使用的图标样式 ###### menu_index 值类型:int 指定在导航菜单组中的排序位置 ###### verbose_name 值类型:int 指定在导航菜单中的显示名称 ###### show_nav 值类型:bool 是否显示顶部和左侧的导航菜单,默认为True,如果为False则列表页只看到grid数据 ###### paginate_by 值类型:int 用于控制列表页面grid的分页大小 例如 ```python class User_Info_Admin(ModelAdmin): paginate_by = 20 ``` ###### filter_paginate_by 值类型:int 用于控制列表页面grid过滤查询结果的分页大小 ###### columns 值类型:list 用于控制grid显示的哪些列,可以是模型本身的数据库字段列或者扩展的自定义列,不定义则默认显示所有数据库字段列 ###### add_column_display 值类型:dict 用于定义grid列头显示的别名,例如 ```python add_column_display = { 'photo_show': u'头像', } ``` ###### filter_exclude 值类型:list 控制高级查询要屏蔽的查询字段 ###### filter_fields 值类型:list 控制高级查询要用的查询字段,不定义则默认显示所有数据库字段列 ###### exclude 值类型:list 控制新增/更新的表单屏蔽的可编辑字段 ###### fields 值类型:list 控制新增/更新的表单要显示的可编辑字段,不定义则默认显示所有数据库字段 ###### method_exclude 值类型:list 控制要屏蔽的crud功能,可选的自生成功能:'add'、'delete'、'edit'、'export'
Information
MoCrud详细说明文档
http://www.oejia.net/article/e5a51ecc448f09c95dfdbb91ac690eef
http://www.oejia.net/raw/e5a51ecc448f09c95dfdbb91ac690eef
on 2014-12-22
Category
后端HTTP
Tag
Web
Http
Related
2017-10-31 :
前端相关
2016-05-11 :
Django 自定义扩展命令简析
2014-12-16 :
Cordova页面加载的事件
2020-07-04 :
钉钉模块使用说明
2016-03-12 :
Odoo 的微信模块 Oejia_wx v0.2 发布!兼容 Odoo 9.0
2014-12-15 :
Cordova开发环境搭建与基本使用
2020-06-05 :
小程序商城模块 Oejia_weshop v0.2.1 发布,各种营销活动支持打通线上线下业务
2020-03-31 :
Odoo 企业微信的OA审批及移动化办公
2020-03-03 :
微信模块——使用说明
2018-11-23 :
Odoo 菜单定制模块 Oejia_menu v0.2.0 发布!
官方订阅号
关注订阅实时了解我们更多分享
分类
(24)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (129)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
MoSys详细说明文档
Mole详细说明文档
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
OE商城
审批OA
HTML5
Markdown
DjangoX
Excel
markdown
解析
服系统
PyQT
YouPBX
md
示例
Python
oeshop
最近发布
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Odoo16 开启客屏时如何实现在POS设备上自动打开到第二屏
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子