odoo——日历的一对多与多对一
# model文件
# -*- coding: utf-8 -*-
from odoo import api, fields, models class TodoTestYear(models.Model):
_name = 'todo.year'
_description = 'To-do Test Year'
_order = 'start_date'
# 年度名称
year_name = fields.Char(string='Name', required=True, translate=True)
# 年度编码
year_code = fields.Char(string='Code', required=True)
# 开始时间
start_date = fields.Date(string='Start_Date', required=True) # 小于结束时间
# 结束时间
end_date = fields.Date(string='End_Date', required=True) # 大于开始时间
quarter_ids = fields.One2many('todo.quarter', inverse_name='year_id', string='Quarter')
month_ids = fields.One2many('todo.month',inverse_name='year_id', string='Month') class TodoTestQuarter(models.Model):
_name = 'todo.quarter'
_description = 'To-do Test Quarter'
# 季度名称
quarter_name = fields.Char(string='Quarter_Name', required=True)
# 季度编码
quarter_code = fields.Char(string='Quarter_Code', required=True)
# 开始时间
start_date = fields.Date(string='Start_Date', readonly=True) # 小于结束时间,逐季变大
# 结束时间
end_date = fields.Date(string='End_Date', readonly=True) # 大于开始时间, 逐季变大
year_id = fields.Many2one(comodel_name='todo.year', string='Year') class TodoTestMonth(models.Model):
_name = 'todo.month'
_description = 'To-do Test Month'
# 月份名称
month_name = fields.Char(string='Month_Name', required=True)
# 月份编码
month_code = fields.Char(string='Month_Code', required=True)
# 开始时间
start_date = fields.Date(string='Start_Date', readonly=True) # 小于结束时间,逐月变大
# 结束时间
end_date = fields.Date(string='End_Date', readonly=True) # 大于结束时间,逐月变大
# 所属季度
quarter_id = fields.Many2one(comodel_name='todo.quarter', readonly=True, string='Quarter') # 取值同1年度内的季度行表中的季度,格式为季度的 Code,注意行结构不提供链接
year_id = fields.Many2one(comodel_name='todo.year', string='Year')
# xml文件
<?xml version="1.0"?>
<odoo> <act_window id="todo_test_action"
name="To-do Test"
res_model="todo.year" />
<!---->
<menuitem id="todo_test_menu_action"
name="Todos"
action="todo_test_action"/> <!--form视图-->
<record id="todo_test_view_form" model="ir.ui.view">
<field name="name">To-do Test year Form</field>
<field name="model">todo.year</field>
<field name="arch" type="xml">
<form string="To-do Test">
<header>
<button name="create_month" type="object" string="Create Month" class="create_month"/>
</header>
<sheet>
<group name="group_top">
<group name="group_left">
<field name="year_name"/>
<field name="year_code"/>
</group>
<group name="group_right">
<field name="start_date"/>
<field name="end_date"/>
</group>
</group>
<notebook>
<page string="Quarter">
<field name="quarter_ids">
<tree>
<field name="quarter_name"/>
<field name="quarter_code"/>
<field name="start_date"/>
<field name="end_date"/>
</tree>
</field>
</page>
<page string="Month">
<field name="month_ids">
<tree>
<field name="month_name"/>
<field name="month_code"/>
<field name="start_date"/>
<field name="end_date"/>
<field name="quarter_id"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record> <!--tree视图-->
<record id="todo_test_view_tree" model="ir.ui.view">
<field name="name">To-do Test year Tree</field>
<field name="model">todo.year</field>
<field name="arch" type="xml">
<tree>
<field name="year_name"/>
<field name="year_code"/>
<field name="start_date"/>
<field name="end_date"/>
</tree>
</field>
</record> <record id="todo_test_view_search" model="ir.ui.view">
<field name="name">To-do Test year Search</field>
<field name="model">todo.year</field>
<field name="arch" type="xml">
<search>
<field name="year_name" string="Year" filter_domain="['|',('year_name','ilike',self),('year_code','ilike',self)]"/>
</search>
</field>
</record> </odoo>
odoo——日历的一对多与多对一的更多相关文章
- EF里一对一、一对多、多对多关系的配置和级联删除
本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 /// < ...
- Django ORM、一对一、一对多、多对多、详解
上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解ORM中的几个知识点 1.1首先我们先看一个小案例: #_*_coding:utf-8_*_ from django.db imp ...
- 2.1、Hibernate多表操作--一对多、多对一、多对多。
一.什么是一对一.一对多.多对一及多对多关系(以简单的学生和老师的关系为例来说): 1.一对一:学生具有学号和姓名(假定没有同名的学生)这两个属性,那么我知道了学生的学号也就能找到对应的学生姓名,如果 ...
- 【Hibernate框架】关联映射(一对多,多对一)
根据我们的总结计划,上篇文章我们总结了有关于一对一映射相关知识,接下来,我们进行下一个阶段,一对多.多对一映射相关知识. 场景设定: 国家规定,一个人只能在一个公司上班,一个公司可以拥有很多员工.我们 ...
- Hibernate一对一、一对多、多对多注解映射配置
一对一: 一对多: 多对多:
- EF里一对一、一对多、多对多关系的配置
EF关系规则 参考文章:http://www.cnblogs.com/feigao/p/4617442.html Entity Framework 实体间的关系,一对一,一对多,多对多,根据方向性来说 ...
- Hibernate中一对多和多对一关系
1.单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时如果只需要获取对应部门信息(user.getdept ...
- Django 一对多,多对多关系解析
[转]Django 一对多,多对多关系解析 Django 的 ORM 有多种关系:一对一,多对一,多对多. 各自定义的方式为 : 一对一: OneToOneField ...
- 六 mybatis高级映射(一对一,一对多,多对多)
1 订单商品数据模型 以订单商品数据为模型,来对mybaits高级关系映射进行学习.
随机推荐
- linux 安装nginx -查看 linux的环境变量
我发现在linux上面安装linux很简单 在CentOS release 6.5 上面先看一下操作系统的版本: lsb_release -a 直接执行 yum install nginx 系统自动的 ...
- Comet OJ - Contest #6 B.双倍快乐(二维最大上升子序列和)
双倍快乐 题目描述 Illyasviel:"你想要最长不下降子序列吗?" star-dust:"好啊!" Illyasviel:"老板,给我整两个最长 ...
- OAuth 2.0 的四种方式
上一篇文章介绍了 OAuth 2.0 是一种授权机制,主要用来颁发令牌(token).本文接着介绍颁发令牌的实务操作. 下面我假定,你已经理解了 OAuth 2.0 的含义和设计思想,否则请先阅读这个 ...
- 分区工具parted的使用方法
一. parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小. ...
- Linux虚拟化与容器化
随着云计算的不断发展,计算资源不断集中于大规模的服务器集群上.为了充分发挥硬件潜力,提高服务器性能,虚拟化技术由此诞生. 所谓虚拟化技术,是指将计算元件和硬件隔离开来,隐藏底层的硬件物理特性,为用户提 ...
- Matlab图像处理——中值滤波medfilt2问题解决
本文链接:https://blog.csdn.net/Pxzly1117/article/details/79201772程序: I=imread('13.jpg');%读入图像imshow(I);h ...
- java匿名内部类new(){}
匿名内部类:顾名思义,没有名字的内部类.表面上看起来它们似乎有名字,实际那不是它们的名字.当程序中使用匿名内部类时,在定义匿名内部类的地方往往直接创建该类的一个对象.匿名内部类的声明格式如下:new ...
- 简易的CRM系统案例SpringBoot + thymeleaf + MySQL + MyBatis版本
创建maven项目 pop.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...
- 为Viewgourp内组件添加动画
package com.loaderman.customviewdemo; import android.animation.Keyframe; import android.animation.La ...
- js的Map实例
1.创建实例 let map= new Map(); // 创建 2.对map的写入 // 要添加的对象 let obj1 = {name:'张三', sex:'boy',age: 21}; let ...