Python 通过OpenERP-7中的按钮调用树视图
我想知道如何通过按钮调用(不同记录的)树视图。因为返回表单视图很容易,但当我尝试对树视图执行完全相同的操作时,它只显示一个列表 场景是我有一个搜索产品表单。现在,当生成搜索时,字段中会填充一个记录域 我想添加一个按钮来调用树视图,显示该域中存在的记录。我给按钮添加了一个函数,但它显示了列表中的所有记录,甚至没有显示域中的记录 我尝试通过单击按钮调用以下函数,但它不符合我的需要:Python 通过OpenERP-7中的按钮调用树视图,python,xml,openerp,openerp-7,Python,Xml,Openerp,Openerp 7,我想知道如何通过按钮调用(不同记录的)树视图。因为返回表单视图很容易,但当我尝试对树视图执行完全相同的操作时,它只显示一个列表 场景是我有一个搜索产品表单。现在,当生成搜索时,字段中会填充一个记录域 我想添加一个按钮来调用树视图,显示该域中存在的记录。我给按钮添加了一个函数,但它显示了列表中的所有记录,甚至没有显示域中的记录 我尝试通过单击按钮调用以下函数,但它不符合我的需要: def views(self,cr,uid,ids,context=None): for id in ids:
def views(self,cr,uid,ids,context=None):
for id in ids:
deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
my_id=int(deg_obj.my_products)
return{
'view_type': 'tree',
'view_mode': 'tree',
'res_model': 'product.product',
'res_id':my_id,
'context': context,
'type': 'ir.actions.act_window',
'readonly':True,
}
我需要一些指导来指出我的错误。多亏了大家试试这个
def views(self,cr,uid,ids,context=None):
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'product', 'product_product_tree_view')
view_id = view_ref and view_ref[1] or False
for id in ids:
deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
my_id=int(deg_obj.my_products)
#this will return product tree view and form view.
return {
'type': 'ir.actions.act_window',
'name': _('Product'),
'res_model': 'product.product',
'view_type': 'form',
#'res_id': my_id, # this will open particular product,
'view_id': view_id,
'view_mode': 'tree',
'target': 'current',
'nodestroy': True,
}
我已经通过对python代码的以下更改修复了这个问题
def views(self,cr,uid,ids,context):
for id in ids:
deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
my_id=int(deg_obj.my_products)
ss= int(deg_obj.categ_temp2)
domain = [('categ_id','=',ss)]
return {
'type': 'ir.actions.act_window',
'name': _('Product'),
'res_model': 'product.product',
'view_type': 'form',
'view_mode': 'tree,form',
'target': 'current',
'domain': domain,
}
现在工作正常了。谢谢大家谢谢我尝试了,但出现了错误:“非db操作字典应提供多个视图模式或单个视图模式以及可选的视图id。获得了操作的视图模式['tree'、'form']和视图id 220{'target':'current','view_type':'form','res_model':'product.product','view_id':220,'nodestroy':True,'view_mode':'tree,form','flags':{},'type':'ir.actions.act_window'}'我得到了树状视图,但它向我显示了所有记录。它没有显示域中的记录。搜索产品是5条记录。它应该显示5条记录的树状视图,但它向我显示了所有记录,因为我们对
resu id
进行了评论,或者您可以使用域来限制所有产品。那么在resu id上,我可以为您提供什么r域。因为如果设置res\u id:my\u id,它仍然会显示所有内容。比如首先搜索您想要的产品id并存储在变量product\u id
中,然后在域中给出它。
例如'domain':['id','in',product\u id]