Openerp 动态返回表单

Openerp 动态返回表单,openerp,odoo-10,Openerp,Odoo 10,您好,请提供帮助。我如何以新的形式动态返回One2many的值 我有三个类,我定义了一个函数,在其中我返回many2many(rubrique_id)和One2many(critere_id)的值,它们最近以一种新的形式存在。我如何从One2many字段的值动态返回(生成)表单 文件xml 头等舱 A类(models.Model): _name='risques.risque' _rec_name='nom_risque' nom_risque=fields.Char(必需=True,str

您好,请提供帮助。我如何以新的形式动态返回One2many的值

我有三个类,我定义了一个函数,在其中我返回many2many(rubrique_id)和One2many(critere_id)的值,它们最近以一种新的形式存在。我如何从One2many字段的值动态返回(生成)表单

文件xml


头等舱

A类(models.Model):
_name='risques.risque'
_rec_name='nom_risque'
nom_risque=fields.Char(必需=True,string=“nom du risque”)
rubrique_id=fields.Many2many('risques.rubrique',string=“rubrique”,required=True)
二等舱:

B类(models.Model):
_name='risques.rubrique'
_rec_name='nom_rubrique'
critere_id=fields.One2many('risques.critere','rubrique_id',required=True,string=“Critére d'évaluation”)
nom_rubrique=fields.Char(string=“rubrique”)
三等舱

C类(models.Model):
_name='risques.critere'
_rec_name='nom_critere'
nom_critere=fields.Char(string=“nom du critere”)
note=fields.Float(string=“note”,readonly=True,compute=''onchange\u mesure')
rubrique_id=fields.manyOne('risque.rubrique',
string='Rubrique')
课堂练习曲(models.Model):
_name='etude.risque'
client=fields.manyOne('res.partner',string=“client”,required=True,index=True)
risque=fields.manyOne('risques.risque',string=“risque”,required=True)
def蒸发器(自身):
context=self.\u context.copy()
rubriques=self.risque.risque\u id
nom_rub=[]
rubs=self.env['risques.rubrique'].浏览(rubriques)
标准练习曲=[]
my_vals=[]
对于枚举中的a(RUB):
i=a[0]
r=self.env['risques.rubrique'].search([('id','=',self.risque.risque_id[i].id)])
cr=self.risque.risque\u id[i].critere
对于枚举中的b(cr):
j=b[0]
critere_etude.append(cr.search([('id','=',cr[j].id)]).nom_critere)
打印cr.search([('id','=',cr[j].id)]).id
nom_rub.append({'etude_id':1,
“rubrique_练习曲”:r.nom_分类,
“critere_练习曲”:critere_练习曲
})
标准练习曲=[]
我的VAL.append(名称)
nom_rub=[]
self.env['risque.evaluation'].create({'risque_练习曲]:self.risque.nom_-risque,
练习曲(我的舞曲)
返回{
'名称':'评估',
“视图类型”:“表单”,
“视图模式”:“树,窗体”,
#“视图”:[{'view\u mode':'form','view\u id':'rub\u id'}],
“资源模型”:“风险评估”,
'type':'ir.actions.act_window',
“res_id”:self.id,
#'目标':'新',
“上下文”:上下文,
}

当您搜索表单用户时,如何动态返回rubrique_id和critere_id

首先:

form_id=self.evn.ref('addon_name.form_xml_id').id#form_id必须是整数值而不是对象
#例如:form\u id=self.env.ref('sale.some\u form\u id').id
#例如:form\u id=self.env.ref('point\u of\u sale.some\u other\u form\u id').id
#对于任何视图都是一样的,总是通过xml id查找它。
现在,如果在一个视图中打开记录,则打开操作作为返回 例如,在表单视图中:

form\u id=self.evn.ref('addon\u name.form\u xml\u id').id
返回{
'名称':'评估',
“视图类型”:“表单”,
“查看模式”:“表单”,
“视图id”:表单id,
“res_id”:记录_id,#如果要打开特定记录,则为整数值
#如果不只是输入False或删除resu id,这将打开表单
#在创建模式下,但在编辑模式下指定id时
....
...
}
现在,如果要在多个视图中打开多个记录

form\u id=self.evn.ref('addon\u name.form\u xml\u id').id
tree\u id=self.evn.ref('addon\u name.tree\u xml\u id').id
返回{
'名称':'评估',
“视图类型”:“表单”,
“视图模式”:“树,窗体”,
“视图id”:表单id,
“视图”:[(树id,'tree'),(表单id,'form')]#元组列表(id,视图代码)
“域”:[some_domain],#当您打开多个记录时,我们不使用用户resu id
#我们使用域来过滤那些我们想要看到的记录
.....
.....
希望这能让您了解如何为用户指定witch视图: 注意:对于搜索视图:

'search_view_id':search_id,#整数值不传递对象将在客户端给出json错误