作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在我的 openerp 模块中使用下拉菜单列表。我有一个包含categories 的many2one 字段。该字段与 onchange 函数关联。此 onchange 函数将新值返回到第二个字段。现在一切正常,但我想在第二个字段中使用下拉类型菜单,以便我可以从中选择值。我的Python代码如下:
class deg_form(osv.osv):
_name = "deg.form"
_columns = {
'categ1':fields.many2one('product.category','Parent Category',required=True),
'my_products':fields.char('Product',size=64)
}
def Product_Category_OnChange(self,cr,uid,ids,categ1):
pro_id=[]
cr.execute('select id,name from product_template where categ_id in (select id from product_category where parent_id in (select id from product_category where parent_id='+str(categ1)+')) union select id,name from product_template where categ_id in (select id from product_category where parent_id='+str(categ1)+') union select id,name from product_template where categ_id='+str(categ1))
res = cr.fetchall()
for pid,name in res:
pro_id.append((pid,name))
return {'value':{'my_products':pro_id}}
这是我的 xml:
<field name="categ1" on_change="Product_Category_OnChange(categ1)" />
我的值已被过滤,但全部显示在以逗号分隔的字段中。我希望它们被列为下拉菜单。我使用了 Many2one 但这些值似乎没有被过滤。因此,我在实现下拉 ListView 的值时遇到问题。请帮我。问候
最佳答案
my_products
应该是与 product.product
相关的多对一字段。
'my_products':fields.many2one('product.product',string="Product")
如果您想通过在类别上使用 on_change 来过滤产品列表,您必须为 my_products
返回一个新的域过滤器,例如(请使用 orm 方法而不是直接查询):
def Product_Category_OnChange(self,cr,uid,ids,categ1):
product_obj = self.pool.get('product.product')
product_ids = product_obj.search(cr, uid, [('cat_id','=',categ1)]) #maybe cat_id is wrong field name
return {'domain':{'my_products':[('id','in',product_ids)]}}
:-)
关于python - 如何在OpenERP中使用下拉字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603840/
我是一名优秀的程序员,十分优秀!