MoCrud详细说明文档 - Oejia 技术栈,企业方案分享、Odoo顾问
Oejia 技术栈
主页
分享
微信模块
索引
关于
订阅
编辑器
登录
MoCrud详细说明文档
Oejia
on 2014-12-22 13:27:09
[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'''
''' 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/blog/2014/12/22/mocrud_detail.html
http://www.oejia.net/raw/2014/12/22/mocrud_detail.md
Oejia
on 2014-12-22 13:27:09
Category
后端HTTP
Tag
Python
Web
Http
Related
2022-05-30 :
浏览器调用print实现部分打印的两种方法
2019-12-28 :
Odoo 企业微信客户端模块 Oejia_mobile 使用说明
2018-09-20 :
基于 Odoo 框架的开源在线客服系统
2018-03-26 :
DjangoX 相关文档
2017-11-16 :
DjangoX 扩展的命令(commands)使用指南
2016-12-19 :
DjangoX Ajax表单交互之“部分更新”patch式
2016-02-19 :
Python 运行参数解析的使用示例
2016-01-17 :
关于Django框架的ContentType模型
2014-12-15 :
Cordova设置应用图标icon和启动页面SplashScreen
2014-12-15 :
Cordova开发环境搭建与基本使用
March 2023
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
分类
Odoo (123)
DjangoX (13)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (3)
前端 (2)
JS (2)
公告说明 (2)
Python (1)
Nginx (1)
桌面UI (1)
异常处理 (1)
官方公众号
关注公众号实时咨询我们
About This Entry
MoCrud(快速建立关系型数据管理系统)
Mole详细说明文档
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Python
Web
Http
客服系统
OE商城
Cordova
审批OA
HTML5
Markdown
解析
DjangoX
ExtJS
示例
Excel
JS
新年
PyQT
扩展开发
YouPBX
服系统
最近发布
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'footer:not(field footer)' is not a valid selector
企业微信错误码:60020 的处理
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
Odoo 让 server action 显示到指定的视图上
Odoo 增加树形列表视图的支持
Odoo 16 正式发布时间
Odoo 企业微信之日历、日程的同步
钉钉消息通知及审批功能的使用说明
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子