最近发现群上有朋友在问如何在product上面添加图片这个问题,我以前也搞过,初学者也有初学者的办法,这里我介绍一下我是如何实现的,因为觉得直接修改addon里面的module有些危险,不建议。所以通过自己写个继承模块来实现。
1.首先是包的构成:
__init__.py
复制内容到剪贴板
代码:
import product_img
这里是初始化的时候需要模块里面的那些py文件,我这里是product_img.py。所以写import product_img
__terp__.py
这里的最重要的有
“depends”:就是需要依赖哪些module,我这里既然是继承product当然就是product了。
“update_xml”:就是这个模块需要的Xml。我写了个是product_img_view.xml
product_img.py
product_product()
这里是object的继承
_name='product.product'._inherit = 'product.product'(此名字可以在Administrators->Customization->Database Structure->Object查找,不过我建议还是直接进addon里面看product模块)
_columns就是字段了, 'pic':fields.binary('Pic'), 'pic'是字段名,就是数据库里面存的字段,:fields.binary就是图片在OE里面的字段类型,后面的'Pic'是在OE里面显示的名称。
product_img_view.xml
这里的格式其实都已经很固定的了。这里是view的继承
“id”代表的是这个view,唯一。
“name”就是你要继承的view的名字
“model”就是你要继承的view的object...
“ref”就是你要继承的view的id
<field name="name" position="before">这句是是你的元件插入的时用于定位的我这里的意思是插在name之前
<field name="pic" widget="image" nolabel="1" img_width="300" img_height="300"/>这句就是你所要插入的东西了,我这里是插入一个图片300*300大小的图片。
效果图:
“id”代表的是这个view,唯一。
“name”就是你要继承的view的名字
“model”就是你要继承的view的object...
“ref”就是你要继承的view的id
<field name="name" position="before">这句是是你的元件插入的时用于定位的我这里的意思是插在name之前
<field name="pic" widget="image" nolabel="1" img_width="300" img_height="300"/>这句就是你所要插入的东西了,我这里是插入一个图片300*300大小的图片。
效果图:
![](http://www.shine-it.net/images/default/attachimg.gif)
![](http://www.shine-it.net/attachments/month_1004/20100403_192362b5290bbd2625ceJcknlJwVi5VA.jpg)
http://www.shine-it.net/viewthread.php?tid=1000&extra=page%3D1