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-01-07 :
gevent 相关积累
2019-01-30 :
Odoo后端性能优化之—取消当访问页面404时对ir.attachment表的查询
2022-04-26 :
Odoo 低版本升级到 Odoo15 的处理集锦
2020-03-19 :
商城——小程序端项目管理
2018-10-24 :
Odoo 12 账号相关的变化
2016-01-19 :
Odoo 数据的增/删/改/查(CRUD)操作 API 解析及示例
2018-10-10 :
SaaS Tools 使用说明文档
2023-03-05 :
OErp for Shopify 使用配置指引
2019-05-30 :
小程序商城模块 Oejia_weshop v0.1.4 发布,支持Odoo账号绑定登录及价格表机制
2023-09-28 :
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
官方订阅号
关注订阅实时了解我们更多分享
分类
(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
Mole详细说明文档
MoCrud(快速建立关系型数据管理系统)
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
OE商城
HTML5
审批OA
DjangoX
Markdown
PyQT
解析
md
示例
YouPBX
Excel
markdown
Python
oeshop
服系统
最近发布
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 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子