odoo的学习步骤四:外键及其展示 + compute运用

model

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class test(models.Model):
    _name = 'test.test'

    name = fields.Char(string='名字')
    sex = fields.Char(string='性别')
    age = fields.Char(string='年龄')
    hobby_id = fields.Many2one('test.hobby',ondelete='set null',string='爱好')



class hobby(models.Model):
    _name = 'test.hobby'

    name = fields.Char(string='爱好')
    person_ids = fields.One2many('test.test','hobby_id',string='爱好的人')
    person_ids_num = fields.Integer(string='爱好的人的数量',compute='_compute_person_num')

    @api.depends('person_ids')
    @api.multi
    def _compute_person_num(self):
        for i in self:
            i.person_ids_num = len(i.person_ids)

xml

<odoo>
  <data>
    <record model="ir.ui.view" id="hobby_list">
      <field name="name">hobby_list</field>
      <field name="model">test.hobby</field>
      <field name="arch" type="xml">
        <tree>
          <field name="name"/>
          <field name="person_ids_num"/>
        </tree>
      </field>
    </record>

    <record model="ir.ui.view" id="hobby_form">
      <field name="name">hobby_form</field>
      <field name="model">test.hobby</field>
      <field name="arch" type="xml">
        <form>
          <group colspan="4">
              <group colspan="2" col="2">
                  <field name="name"/>
              </group>

              <notebook colspan="4">
                  <page string="person">
                      <field name="person_ids">
                          <tree>
                              <field name="name"/>
                              <field name="sex"/>
                              <field name="age"/>
                          </tree>
                      </field>
                  </page>
              </notebook>
          </group>
        </form>
      </field>
    </record>



    <record model="ir.ui.view" id="myself_list">
      <field name="name">myself_list</field>
      <field name="model">test.test</field>
      <field name="arch" type="xml">
        <tree>
          <field name="name"/>
          <field name="sex"/>
          <field name="age"/>
          <field name="hobby_id"></field>
        </tree>
      </field>
    </record>

    <record model="ir.ui.view" id="myself_form">
      <field name="name">myself_form</field>
      <field name="model">test.test</field>
      <field name="arch" type="xml">
        <form>
          <group colspan="4">
              <group colspan="2" col="2">
                  <separator string="Myname" colspan="2"/>
                  <field name="name"/>
                  <field name="age" nolabel="1"/>
              </group>

              <group colspan="2" col="2">
                  <separator string="Mysex" colspan="2"/>
                  <field name="sex"/>
              </group>

              <notebook colspan="4">
                  <page string="hobby">
                      <field name="hobby_id" nolabel="1"/>
                  </page>
              </notebook>
          </group>
        </form>
      </field>
    </record>

    <record model="ir.ui.view" id="myself_search">
        <field name="name">myself_search</field>
        <field name="model">test.test</field>
        <field name="arch" type="xml">
            <search>
                <field name="name"></field>
                <field name="sex"></field>
                <field name="age"></field>
                <separator/>
                <filter string="超过" name="more" domain="[('age','>','18')]"></filter>
                <separator/>
                <group>
                    <filter string="sex" name="sex" domain="[]" context="{'group_by':'sex'}"></filter>
                </group>
            </search>
        </field>
    </record>

    <record model="ir.actions.act_window" id="myself_ideas">
      <field name="name">myself</field>
      <field name="res_model">test.test</field>
      <field name="view_model">tree,form</field>
    </record>

    <record model="ir.actions.act_window" id="hobby_idea">
      <field name="name">hobby</field>
      <field name="res_model">test.hobby</field>
      <field name="view_model">tree,form</field>
    </record>


    <menuitem id="first_menu" name="first_menu"/>
    <menuitem id="second_menu" name="second_menu" parent="first_menu"/>
    <menuitem id="menu_myself" name="menu_myself" parent="second_menu" action="myself_ideas"/>
    <menuitem id="menu_hobby" name="menu_hobby" parent="second_menu" action="hobby_idea"/>
  </data>
</odoo>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值