odoo12常用的方法
Posted 1314520xh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo12常用的方法相关的知识,希望对你有一定的参考价值。
2019-09-13 今天是中秋节,星期五
#自定义显示名称 def name_get(self): result = [] for order in self: rec_name = "%s(%s)"%(record.name,record.date_done) result.append((record.id, rec_name)) return result # 新添加函数name_search @api.model def name_search(self, name=‘‘, args=None, operator=‘ilike‘, limit=100): if not args: args = [] products = [] if name: positive_operators = [‘=‘, ‘ilike‘, ‘=ilike‘, ‘like‘, ‘=like‘] products = self.env[‘product.product‘] if operator in positive_operators: products = self.search([(‘name‘, ‘ilike‘, name)] + args, limit=limit) if not products: products = self.search([(‘size‘, ‘ilike‘, name)] + args, limit=limit) if not products: products = self.search([(‘material‘, ‘ilike‘, name)] + args, limit=limit) else: products = self.search(args, limit=limit) return products.name_get() #添加约束 from odoo.exceptions import ValidationError @api.constrains(‘age‘) def _check_something(self): for record in self: if record.age > 20: raise ValidationError("Your record is too old: %s" % record.age) # all records passed the test, don‘t return anything #更新时间 @api.multi def change_updatetime(self): for order in self: order.update_time=fields.Datetime.now() 在SQL语句里或ORM里 记录集要用tuple 不能用list search([(‘id‘,‘in‘,tuple(ids)]) 调用mapped获取员工名字 return employee_ids.mapped(‘name‘) #获取用户组:self.user_has_groups(‘base.group_no_one‘) 看板默认分组当无此类型当值时也默认出现在看板里 #对于odoo12来说 group_expand=‘‘ 对于selection类型 state = fields.Selection([(‘a‘, "A"), (‘b‘, "B"),(‘c‘, "C"), (‘d‘, "D")], group_expand=‘_expand_states‘) def _expand_states(self, states, domain, order): # return all possible states, in order return [key for key, val in type(self).state.selection] #对于odoo12来说 group_expand=‘‘ 对于many2one类型 stage_id = fields.Many2one(‘crm.stage‘, string=‘Stage‘, ondelete=‘restrict‘, track_visibility=‘onchange‘, index=True, domain="[‘|‘, (‘team_id‘, ‘=‘, False), (‘team_id‘, ‘=‘, team_id)]", group_expand=‘_read_group_stage_ids‘, default=lambda self: self._default_stage_id()) @api.model def _read_group_stage_ids(self, stages, domain, order): """ Read group customization in order to display all the stages in the kanban view, even if they are empty """ stage_ids = stages._search([], order=order, access_rights_uid=SUPERUSER_ID) return stages.browse(stage_ids) #以超级用户身份创建记录 rent_as_superuser = self.env[‘library.book‘].sudo() rent_as_superuser.create(vals) #获取当前用户对于的员工 employee = self.env.user.employee_ids[0] #对象 employee.id employee.name
<field name="discount" groups="base.group_no_one" string="Disc (%)"/> <field name="invoice_line_tax_ids" widget="many2many_tags" options="‘no_create‘: True" context="‘type‘:parent.type, ‘tree_view_ref‘: ‘account.account_tax_view_tree‘, ‘search_view_ref‘: ‘account.account_tax_view_search‘" domain="[(‘type_tax_use‘,‘=‘,‘sale‘),(‘company_id‘, ‘=‘, parent.company_id)]"/> <field name="price_subtotal" string="Subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
动作
<record id="sale_order_line_action" model="ir.actions.act_window">
<field name="name">search_sale_order_line</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order.line</field>
<field name="view_mode">tree,form</field>
<field name="context">‘tree_view_ref‘:‘sale_order_line_tree‘,
‘form_view_ref‘:‘sale_order_line_form‘
</field>
</record>
继承
<xpath expr="//header" position="inside">
<button name="btn_7" string="" type="object" class="oe_highlight oe_read_only" />
</xpath>
<xpath expr="//header/field[@name=‘order_id‘]" position="attributes">
<attribute name="readonly">1</attribute>
</xpath>
查看附件
<div class="o_attachment_preview" attrs="‘invisible‘: [‘|‘,(‘type‘, ‘!=‘, ‘in_invoice‘),(‘state‘, ‘!=‘, ‘draft‘)]" />
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="activity_ids" widget="mail_activity"/>
<field name="message_ids" widget="mail_thread"/>
</div>
以上是关于odoo12常用的方法的主要内容,如果未能解决你的问题,请参考以下文章