1. # model文件
  2. # -*- coding: utf-8 -*-
  3. from odoo import api, fields, models
  4.  
  5. class TodoTestYear(models.Model):
  6. _name = 'todo.year'
  7. _description = 'To-do Test Year'
  8. _order = 'start_date'
  9. # 年度名称
  10. year_name = fields.Char(string='Name', required=True, translate=True)
  11. # 年度编码
  12. year_code = fields.Char(string='Code', required=True)
  13. # 开始时间
  14. start_date = fields.Date(string='Start_Date', required=True) # 小于结束时间
  15. # 结束时间
  16. end_date = fields.Date(string='End_Date', required=True) # 大于开始时间
  17. quarter_ids = fields.One2many('todo.quarter', inverse_name='year_id', string='Quarter')
  18. month_ids = fields.One2many('todo.month',inverse_name='year_id', string='Month')
  19.  
  20. class TodoTestQuarter(models.Model):
  21. _name = 'todo.quarter'
  22. _description = 'To-do Test Quarter'
  23. # 季度名称
  24. quarter_name = fields.Char(string='Quarter_Name', required=True)
  25. # 季度编码
  26. quarter_code = fields.Char(string='Quarter_Code', required=True)
  27. # 开始时间
  28. start_date = fields.Date(string='Start_Date', readonly=True) # 小于结束时间,逐季变大
  29. # 结束时间
  30. end_date = fields.Date(string='End_Date', readonly=True) # 大于开始时间, 逐季变大
  31. year_id = fields.Many2one(comodel_name='todo.year', string='Year')
  32.  
  33. class TodoTestMonth(models.Model):
  34. _name = 'todo.month'
  35. _description = 'To-do Test Month'
  36. # 月份名称
  37. month_name = fields.Char(string='Month_Name', required=True)
  38. # 月份编码
  39. month_code = fields.Char(string='Month_Code', required=True)
  40. # 开始时间
  41. start_date = fields.Date(string='Start_Date', readonly=True) # 小于结束时间,逐月变大
  42. # 结束时间
  43. end_date = fields.Date(string='End_Date', readonly=True) # 大于结束时间,逐月变大
  44. # 所属季度
  45. quarter_id = fields.Many2one(comodel_name='todo.quarter', readonly=True, string='Quarter') # 取值同1年度内的季度行表中的季度,格式为季度的 Code,注意行结构不提供链接
  46. year_id = fields.Many2one(comodel_name='todo.year', string='Year')
  1. # xml文件
  2. <?xml version="1.0"?>
  3. <odoo>
  4.  
  5. <act_window id="todo_test_action"
  6. name="To-do Test"
  7. res_model="todo.year"
  8.  
  9. />
  10. <!---->
  11. <menuitem id="todo_test_menu_action"
  12. name="Todos"
  13. action="todo_test_action"/>
  14.  
  15. <!--form视图-->
  16. <record id="todo_test_view_form" model="ir.ui.view">
  17. <field name="name">To-do Test year Form</field>
  18. <field name="model">todo.year</field>
  19. <field name="arch" type="xml">
  20. <form string="To-do Test">
  21. <header>
  22. <button name="create_month" type="object" string="Create Month" class="create_month"/>
  23. </header>
  24. <sheet>
  25. <group name="group_top">
  26. <group name="group_left">
  27. <field name="year_name"/>
  28. <field name="year_code"/>
  29. </group>
  30. <group name="group_right">
  31. <field name="start_date"/>
  32. <field name="end_date"/>
  33. </group>
  34. </group>
  35. <notebook>
  36. <page string="Quarter">
  37. <field name="quarter_ids">
  38. <tree>
  39. <field name="quarter_name"/>
  40. <field name="quarter_code"/>
  41. <field name="start_date"/>
  42. <field name="end_date"/>
  43. </tree>
  44. </field>
  45. </page>
  46. <page string="Month">
  47. <field name="month_ids">
  48. <tree>
  49. <field name="month_name"/>
  50. <field name="month_code"/>
  51. <field name="start_date"/>
  52. <field name="end_date"/>
  53. <field name="quarter_id"/>
  54. </tree>
  55. </field>
  56. </page>
  57. </notebook>
  58. </sheet>
  59. </form>
  60. </field>
  61. </record>
  62.  
  63. <!--tree视图-->
  64. <record id="todo_test_view_tree" model="ir.ui.view">
  65. <field name="name">To-do Test year Tree</field>
  66. <field name="model">todo.year</field>
  67. <field name="arch" type="xml">
  68. <tree>
  69. <field name="year_name"/>
  70. <field name="year_code"/>
  71. <field name="start_date"/>
  72. <field name="end_date"/>
  73. </tree>
  74. </field>
  75. </record>
  76.  
  77. <record id="todo_test_view_search" model="ir.ui.view">
  78. <field name="name">To-do Test year Search</field>
  79. <field name="model">todo.year</field>
  80. <field name="arch" type="xml">
  81. <search>
  82. <field name="year_name" string="Year" filter_domain="['|',('year_name','ilike',self),('year_code','ilike',self)]"/>
  83. </search>
  84. </field>
  85. </record>
  86.  
  87. </odoo>

odoo——日历的一对多与多对一的更多相关文章

  1. EF里一对一、一对多、多对多关系的配置和级联删除

    本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 /// < ...

  2. Django ORM、一对一、一对多、多对多、详解

    上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解ORM中的几个知识点 1.1首先我们先看一个小案例: #_*_coding:utf-8_*_ from django.db imp ...

  3. 2.1、Hibernate多表操作--一对多、多对一、多对多。

    一.什么是一对一.一对多.多对一及多对多关系(以简单的学生和老师的关系为例来说): 1.一对一:学生具有学号和姓名(假定没有同名的学生)这两个属性,那么我知道了学生的学号也就能找到对应的学生姓名,如果 ...

  4. 【Hibernate框架】关联映射(一对多,多对一)

    根据我们的总结计划,上篇文章我们总结了有关于一对一映射相关知识,接下来,我们进行下一个阶段,一对多.多对一映射相关知识. 场景设定: 国家规定,一个人只能在一个公司上班,一个公司可以拥有很多员工.我们 ...

  5. Hibernate一对一、一对多、多对多注解映射配置

    一对一: 一对多: 多对多:

  6. EF里一对一、一对多、多对多关系的配置

    EF关系规则 参考文章:http://www.cnblogs.com/feigao/p/4617442.html Entity Framework 实体间的关系,一对一,一对多,多对多,根据方向性来说 ...

  7. Hibernate中一对多和多对一关系

    1.单向多对一和双向多对一的区别? 只需要从一方获取另一方的数据时 就使用单向关联双方都需要获取对方数据时 就使用双向关系 部门--人员 使用人员时如果只需要获取对应部门信息(user.getdept ...

  8. Django 一对多,多对多关系解析

    [转]Django 一对多,多对多关系解析   Django 的 ORM 有多种关系:一对一,多对一,多对多. 各自定义的方式为 :        一对一: OneToOneField         ...

  9. 六 mybatis高级映射(一对一,一对多,多对多)

    1  订单商品数据模型 以订单商品数据为模型,来对mybaits高级关系映射进行学习.

随机推荐

  1. 阿里PB级Kubernetes日志平台建设实践

    干货分享 | 阿里PB级Kubernetes日志平台建设实践https://www.infoq.cn/article/HiIxh-8o0Lm4b3DWKvph 日志最主要的采集工具是 Agent,在 ...

  2. vmware 两删除一清空

    快速处理办法: cat /etc/sysconfig/network-scripts/ifcfg-eth0 sed -i '/UUID/d' /etc/sysconfig/network-script ...

  3. android studio: 9:57 Unsupported Modules Detected: Compilation is not supported for following modules: map, app, ota, MediaEditor, rcLcmSercive, DroneSDK, qrcodelibrary, rcService, speechService. Unfo

    Android studio Error “Unsupported Modules Detected: Compilation is not supported for following modul ...

  4. TensorFlow Object Detection API —— 测试自己的模型

    (flappbird) luo@luo-All-Series:~/MyFile/TensorflowProject/Mask_RCNN/mask_rcnn_20190518/Mask_RCNN/mod ...

  5. nginx在windows系统中如何启动、重启、停止

    nginx在windows系统中如何启动.重启.停止   查看nginx的版本号:nginx -v 启动nginx:start nginx 快速停止或关闭nginx:nginx -s stop 正常停 ...

  6. [Feature] Feature selection

    Ref: 1.13. Feature selection Ref: 1.13. 特征选择(Feature selection) 大纲列表 3.1 Filter 3.1.1 方差选择法 3.1.2 相关 ...

  7. 激活Microsoft Word 2010

    先关闭系统的防火墙(像360安全卫士这类软件),再运行“office 2010 正版验证激活工具”,并点击“Install/Uninstall KMService”安装“KMS”服务器(如下图,在弹出 ...

  8. CDS视图篇 2

    核心数据服务 (CDS) 公司希望使用 SAPS/4HANA 核心数据服务 (CDS) 视图技术.需要学习 CDS 视 图的概念和结构以及语法 . ● 核心数据服务是用于业务实体的 SAP 战略建模方 ...

  9. mysl创建用户+授权+增、删、改查

    1.mysql的root用户无法给普通用户授权问题处理 update mysql.user set Grant_priv='Y' where User='root' and Host='%': flu ...

  10. 《Django企业开发实战 高效Python Web框架指南》胡阳

    链接:https://pan.baidu.com/s/1NmN_IT5RvevCMt9bZCW1-g提取码:2ki9