通过OpenERP7中的特定按钮以只读模式打开窗体

2024-04-20 10:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道在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代码:

^{pr2}$

但它不适用于此。我不知道是否必须在xml代码中添加任何属性。因为窗体只有通过此按钮调用才会处于查看模式。 任何帮助或指导将不胜感激。谢谢大家


Tags: 用户selfformidfalseobjids编辑
2条回答

您可以从按钮传递上下文,并可以在以下表单的所有字段中设置如下属性:

<field name="field_name" attrs="{'readonly':[('your_context','=',True)]}">

如果希望以只读模式打开输入对象,则必须在只读输入字段中添加此属性,如下所示:

 <input type="text" readonly/>

如果你想让它失效的话也是一样。在

^{pr2}$

使用jQuery,只需这样做就可以应用:

 $("input").attr("readonly",true);
 $("input").attr("disabled",true);

像这样去掉:

 $("input").removeAttr("readonly");
 $("input").removeAttr("disabled");

使用2的不同之处在于,当使用disabled时,该值不会在post表单中提交,而使用readonly将提交。在

这适用于大多数输入类型,除了单选/复选框输入。对于这些类型的输入字段,您可以查看这篇关于主题的文章:Can HTML checkboxes be set to readonly?

在页面上执行此操作的简单函数如下:

      function makeReadOnly() {
           $("form :input").attr("readonly",true);
      }

      function makeEditable() {
           $("form :input").removeAttr("readonly");
      }

相关问题 更多 >