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
2020-05-18 :
基于企业微信官方审批应用实现的Odoo通用审批功能
2019-05-30 :
小程序商城模块 Oejia_weshop v0.1.4 发布,支持Odoo账号绑定登录及价格表机制
2022-06-30 :
OE会员模块
2020-06-26 :
Docker 相关
2014-12-15 :
Cordova配置config.xml详解
2018-12-21 :
小程序商城模块 Oejia_weshop v0.1.3 发布,支持衔接Odoo库存的能力
2016-03-19 :
Odoo 中的内置特殊模型
2023-08-10 :
Odoo 16 关键变化 change the term "acquirer" to "provider"
2019-11-14 :
Odoo 国内发票 OCR 导入功能介绍
2014-12-1 :
开篇感言
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (134)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
MoSys详细说明文档
MoCrud(快速建立关系型数据管理系统)
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
审批OA
HTML5
OE商城
Markdown
DjangoX
解析
oeshop
PyQT
服系统
YouPBX
Excel
示例
md
markdown
Python
最近发布
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子