如何解决在odoo 14中循环对象
我是 odoo 开发的新手。我想在我的模型“hotel.room”上创建一个函数来显示创建的房间数量,类型为“宿舍”。但是,我不知道如何做吧。如果你知道我该怎么做,请帮助我。当我创建一个新房间并将床型选择为“宿舍”时,它应该显示已创建的房间数量为“宿舍”类型。计数应该在表单视图中可见。
我的模型:
class HotelRoom(models.Model):
_name = 'hotel.room'
_description = 'hotel room'
_rec_name = 'room_number'
room_number = fields.Integer('Room Number',required=True)
currency_id = fields.Many2one('res.currency',string='Currency')
room_rent = fields.Monetary('Room Rent')
tag = fields.Many2many('hotel.tags',string='Facilities')
bed_type = fields.Selection([
('single','Single'),('double','Double'),('dormitory','Dormitory')
],required=True,default='other')
表单视图:我需要在此处显示计数。
<record id="room_create_form" model="ir.ui.view">
<field name="name">hotel.room.form</field>
<field name="model">hotel.room</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="room_number"/>
<field name="currency_id"/>
<field name="room_rent"/>
</group>
<group>
<field name="bed_type"/>
<field name="tag" widget="many2many_tags"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
解决方法
您可以创建一个方法来调用字段的 on change
bed_type
@api.onchange('bed_type')
def count_dormitory(self)
total_bed = self.env['hotel.room'].search_count([('bed_type','=','dormitory')])
return total_bed
但是这里有一个问题,如果是,那么您希望在其他字段中显示您的总数,然后 create another field
并为该字段分配一个如下所示的值。
@api.onchange('bed_type')
def count_dormitory(self)
total_bed = self.env['hotel.room'].search_count([('bed_type','dormitory')])
self.another_field = total_bed
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。