日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.odoo13之跟着官网做项目/实例(模型关联,模型类模型表的关联)

發布時間:2024/9/30 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.odoo13之跟着官网做项目/实例(模型关联,模型类模型表的关联) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.建立房地產屬性類型的表

還是在models中的estate_property.py中,

并且添加關聯,讓房地產表和屬性表關聯起來,

并且加上買方和銷售人員,默認系統的模型表,

完整estate_property.py如下代碼:(第二個模型類)

from datetime import datetimefrom dateutil.relativedelta import relativedeltafrom odoo import models, fields, apiclass estate_property(models.Model):_name = 'estate.property'_description = '不動產模型類'name = fields.Char(required=True, string='名稱') # 名稱description = fields.Text(string='描述') # 描述postcode = fields.Char(string='郵政編碼') # 郵政編碼@api.modeldef _get_time(self):return datetime.now() + relativedelta(months=3)# date_availability = fields.Date(string='可用日期', copy=False, default=datetime.now() + relativedelta(months=3)) # 可用日期date_availability = fields.Date(string='可用日期', copy=False, default=_get_time) # 可用日期expected_price = fields.Float(required=True, string='預期價格') # 預期價格selling_price = fields.Float(string='售價', readonly=True, copy=False) # 售價bedrooms = fields.Integer(string='臥室數量', default=2) # 臥室數量living_area = fields.Integer(string='居住面積') # 居住面積facades = fields.Integer(string='正面') # 正面(外墻)garage = fields.Boolean(string='車庫') # 車庫garden = fields.Boolean(string='花園') # 花園garden_area = fields.Integer(string='綠化面積') # 綠化面積garden_orientation = fields.Selection(string='花園方向',selection=[('North', '北面'),('South', '南面'),('East', '東面'),('West', '西面'),]) # 花園方向# 不勾選的話,保存之后不可見active = fields.Boolean(default=True)state = fields.Selection(required=True, copy=False, default='New',selection=[('New', '新建'),('Offer Received', '收到報價'),('Offer Accepted', '接收報價'),('Sold', '出售'),('Canceled', '取消'),])sales_man_id = fields.Many2one('res.users', string='銷售人員', default=lambda self: self.env.user)buyer_id = fields.Many2one('res.partner', string='買方', default=lambda self: self.env.company.id)property_type_id = fields.Many2one('estate.property.type', string='房產類型')class estate_property_type(models.Model):_name = 'estate.property.type'_description = '房地產屬性類型表'name = fields.Char(required=True, string='房產類型')

2.為新建的模型類,再加上菜單

在views文件夾下,的estate_menus.xml中,繼續添加,完整的如下

<odoo><data><menuitem id="estate_menu_root" name="房地產"/><menuitem id="estate_advertisements" parent="estate_menu_root" name="廣告"/><menuitem id="estate_estate_properties" parent="estate_advertisements"name="房產" action="estate_model_action"/><menuitem id="estate_settings" parent="estate_menu_root" name="設置"/><menuitem id="estate_settings_property_types" parent="estate_settings" name="房產類型"action="action_property_types"/></data> </odoo>

效果:

?3.為菜單添加上action,關聯上新建的模型類上面,并且加上為之前的模型類的視圖,加上對應的關聯屬性,Many2one

完整的estate_property_views.xml,如下:(可以和之前的對照的去看)

<odoo><data><record id="estate_model_action" model="ir.actions.act_window"><field name="name">房產</field><field name="res_model">estate.property</field><field name="view_mode">tree,form</field></record><record id="estate_view_tree" model="ir.ui.view"><field name="name">estate.view.tree</field><field name="model">estate.property</field><field name="arch" type="xml"><tree string="estate視圖"><field name="name" string="名稱"/><field name="postcode" string="郵政編碼"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="expected_price" string="預期價格"/><field name="selling_price" string="售價"/><field name="date_availability" string="可用日期"/></tree></field></record><record id="estate_form_view" model="ir.ui.view"><field name="name">estate.form.view</field><field name="model">estate.property</field><field name="arch" type="xml"><form string="estate_form"><sheet string="sdfsdf"><h1><field name="name"/></h1><group col="2"><group><field name="property_type_id" string="房產類型"/><field name="postcode" string="郵政編碼"/><field name="date_availability" string="可用日期"/></group><group><field name="expected_price" string="預期價格"/><field name="selling_price" string="售價"/></group></group><notebook><page string="描述"><group><field name="description" string="描述"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="facades" string="正面"/><field name="garage" string="車庫"/><field name="garden" string="花園"/><field name="garden_area" string="綠化面積"/><field name="garden_orientation" string="花園方向"/></group></page><page string="其他信息"><group><field name="sales_man_id" string="銷售人員"/><field name="buyer_id" string="買方"/></group></page></notebook></sheet></form></field></record><record model="ir.ui.view" id="estate_search_view"><field name="name">estate.search.view</field><field name="model">estate.property</field><field name="arch" type="xml"><search><field name="name" string="名稱"/><field name="postcode" string="郵政編碼"/><field name="expected_price" string="預期價格"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="facades" string="正面"/><field name="property_type_id" string="銷售人員"/><filter string="不可見的" name="active" domain="[('active', '=', True)]"/><group expand="1" string="分組"><filter string="郵政編號" name="postcode" context="{'group_by':'postcode'}"/></group></search></field></record><record id="action_property_types" model="ir.actions.act_window"><field name="name">房產類型</field><field name="res_model">estate.property.type</field><field name="view_mode">tree,form</field></record></data> </odoo>

查看效果:

?

?在房地產的模型類表中,選擇房產類型時候,就已經和房產類型的表進行關聯了,可以實際操作的點擊查看。

?4.Many2many,多對多,添加房地產標簽模型類以及視圖

房地產標簽模型。

在models中的estate_property.py中,完整estate_property.py如下代碼(第三個模型類)

from datetime import datetimefrom dateutil.relativedelta import relativedeltafrom odoo import models, fields, apiclass estate_property(models.Model):_name = 'estate.property'_description = '不動產模型類'name = fields.Char(required=True, string='名稱') # 名稱description = fields.Text(string='描述') # 描述postcode = fields.Char(string='郵政編碼') # 郵政編碼@api.modeldef _get_time(self):return datetime.now() + relativedelta(months=3)# date_availability = fields.Date(string='可用日期', copy=False, default=datetime.now() + relativedelta(months=3)) # 可用日期date_availability = fields.Date(string='可用日期', copy=False, default=_get_time) # 可用日期expected_price = fields.Float(required=True, string='預期價格') # 預期價格selling_price = fields.Float(string='售價', readonly=True, copy=False) # 售價bedrooms = fields.Integer(string='臥室數量', default=2) # 臥室數量living_area = fields.Integer(string='居住面積') # 居住面積facades = fields.Integer(string='正面') # 正面(外墻)garage = fields.Boolean(string='車庫') # 車庫garden = fields.Boolean(string='花園') # 花園garden_area = fields.Integer(string='綠化面積') # 綠化面積garden_orientation = fields.Selection(string='花園方向',selection=[('North', '北面'),('South', '南面'),('East', '東面'),('West', '西面'),]) # 花園方向# 不勾選的話,保存之后不可見active = fields.Boolean(default=True)state = fields.Selection(required=True, copy=False, default='New',selection=[('New', '新建'),('Offer Received', '收到報價'),('Offer Accepted', '接收報價'),('Sold', '出售'),('Canceled', '取消'),])sales_man_id = fields.Many2one('res.users', string='銷售人員', default=lambda self: self.env.user)buyer_id = fields.Many2one('res.partner', string='買方', default=lambda self: self.env.company.id)property_type_id = fields.Many2one('estate.property.type', string='房產類型')property_tag_ids = fields.Many2many('estate.property.tag', string='房產標簽')class estate_property_type(models.Model):_name = 'estate.property.type'_description = '房地產屬性類型表'name = fields.Char(required=True, string='房產類型')class estate_property_tag(models.Model):_name = 'estate.property.tag'_description = '房地產屬性標簽表'name = fields.Char(required=True, string='標簽')

菜單

在views文件夾下,的estate_menus.xml中,繼續添加,完整的如下

<odoo><data><menuitem id="estate_menu_root" name="房地產"/><menuitem id="estate_advertisements" parent="estate_menu_root" name="廣告"/><menuitem id="estate_estate_properties" parent="estate_advertisements"name="房產" action="estate_model_action"/><menuitem id="estate_settings" parent="estate_menu_root" name="設置"/><menuitem id="estate_settings_property_types" parent="estate_settings" name="房產類型"action="action_property_types"/><menuitem id="estate_settings_property_tag" parent="estate_settings" name="房產標簽"action="action_property_tag"/></data> </odoo>

動作以及視圖

完整的estate_property_views.xml,如下:(可以和之前的對照的去看)

<odoo><data><record id="estate_model_action" model="ir.actions.act_window"><field name="name">房產</field><field name="res_model">estate.property</field><field name="view_mode">tree,form</field></record><record id="estate_view_tree" model="ir.ui.view"><field name="name">estate.view.tree</field><field name="model">estate.property</field><field name="arch" type="xml"><tree string="estate視圖"><field name="name" string="名稱"/><field name="postcode" string="郵政編碼"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="expected_price" string="預期價格"/><field name="selling_price" string="售價"/><field name="date_availability" string="可用日期"/></tree></field></record><record id="estate_form_view" model="ir.ui.view"><field name="name">estate.form.view</field><field name="model">estate.property</field><field name="arch" type="xml"><form string="estate_form"><sheet string="sdfsdf"><h1><field name="name"/></h1><field name="property_tag_ids" widget="many2many_tags"/><group col="2"><group><field name="property_type_id" string="房產類型"/><field name="postcode" string="郵政編碼"/><field name="date_availability" string="可用日期"/></group><group><field name="expected_price" string="預期價格"/><field name="selling_price" string="售價"/></group></group><notebook><page string="描述"><group><field name="description" string="描述"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="facades" string="正面"/><field name="garage" string="車庫"/><field name="garden" string="花園"/><field name="garden_area" string="綠化面積"/><field name="garden_orientation" string="花園方向"/></group></page><page string="其他信息"><group><field name="sales_man_id" string="銷售人員"/><field name="buyer_id" string="買方"/></group></page></notebook></sheet></form></field></record><record model="ir.ui.view" id="estate_search_view"><field name="name">estate.search.view</field><field name="model">estate.property</field><field name="arch" type="xml"><search><field name="name" string="名稱"/><field name="postcode" string="郵政編碼"/><field name="expected_price" string="預期價格"/><field name="bedrooms" string="臥室數量"/><field name="living_area" string="居住面積"/><field name="facades" string="正面"/><field name="property_type_id" string="銷售人員"/><filter string="不可見的" name="active" domain="[('active', '=', True)]"/><group expand="1" string="分組"><filter string="郵政編號" name="postcode" context="{'group_by':'postcode'}"/></group></search></field></record><record id="action_property_types" model="ir.actions.act_window"><field name="name">房產類型</field><field name="res_model">estate.property.type</field><field name="view_mode">tree,form</field></record><record id="action_property_tag" model="ir.actions.act_window"><field name="name">房產標簽</field><field name="res_model">estate.property.tag</field><field name="view_mode">tree,form</field></record></data> </odoo>

5.

總結

以上是生活随笔為你收集整理的3.odoo13之跟着官网做项目/实例(模型关联,模型类模型表的关联)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。