通过特定按钮在OpenERP-7中以只读模式打开表单
我想知道在OpenERP-7中,是否可以通过一个按钮以只读模式打开一个表单。也就是说,虽然有些按钮可以让表单变得可编辑,但我想通过一个特定的按钮来限制这个功能。我希望当用户点击这个按钮时,表单以只读模式打开,用户不能创建、编辑或删除任何记录。
我在我的.py文件中尝试使用了这个:
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,
'store':False,
'create':False,
'edit':False
}
这是我的xml代码:
<button name="views" string="VIEW PRODUCT" type="object" />
但是这样并没有奏效。我不知道是否需要在xml代码中添加什么属性,或者其他的什么设置。因为这个按钮调用后,表单应该只能以查看模式显示。
任何帮助或指导都非常感谢。谢谢大家!
2 个回答
0
如果你想让输入框只能以只读模式打开,那么你需要在这个只读输入框上添加一个属性,像这样:
<input type="text" readonly/>
如果你想让输入框变成禁用状态,也是同样的道理。
<input type="text" disabled/>
如果你使用jQuery,可以这样简单地应用这个属性:
$("input").attr("readonly",true);
$("input").attr("disabled",true);
要移除这个属性,可以这样做:
$("input").removeAttr("readonly");
$("input").removeAttr("disabled");
这两者的不同在于,使用 disabled
的时候,输入的值不会被提交到表单中,而使用 readonly
的时候,值是会被提交的。
这种方法适用于大多数输入类型,但对于单选框和复选框就不适用了。关于这类输入框的更多信息,你可以查看这个有用的帖子: HTML复选框可以设置为只读吗?
在你的页面上实现这个功能的简单方法如下:
function makeReadOnly() {
$("form :input").attr("readonly",true);
}
function makeEditable() {
$("form :input").removeAttr("readonly");
}
0
你可以从按钮那里传递一个上下文,然后可以像下面这样在表单的所有字段中设置属性:
<field name="field_name" attrs="{'readonly':[('your_context','=',True)]}">