Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

通过继承的方法在product里面加图片


  • 管理员

    [size=99px]最近发现群上有朋友在问如何在product上面添加图片这个问题,我以前也搞过,初学者也有初学者的办法,这里我介绍一下我是如何实现的,因为觉得直接修改addon里面的module有些危险,不建议。所以通过自己写个继承模块来实现。 [/size]
    [size=99px][color=#000000]1.首先是包的构成:[/color][/size]
    [attach]509[/attach]
    [size=99px][color=red]init.py
    [/color][/size][color=#000000][code]import product_img[/code][/color]
    [color=#000000]这里是初始化的时候需要模块里面的那些py文件,我这里是product_img.py。所以写import product_img[/color]

    [size=99px][color=red]terp.py[/color][/size]
    [color=#000000][code]{
    "name" : "simple_product_image",
    "version" : "1.0",
    "depends" : ["product"],
    "init_xml" : [],
    "update_xml" : ["product_img_view.xml"],
    "installable" : True,
    "active" : False,
    "author" : "Joshua",
    }[/code][/color]
    [color=#000000]这里的最重要的有[/color]
    [color=#000000]“depends”:就是需要依赖哪些module,我这里既然是继承product当然就是product了。[/color]
    “update_xml”:就是这个模块需要的Xml。我写了个是product_img_view.xml

    [size=99px][color=red]product_img.py[/color][/size][code]
    #!/usr/bin/python

    from osv import osv, fields

    class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'
    _description = 'Product'
    _columns = {
    'pic':fields.binary('Pic'),
    }

    product_product()[/code]这里是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里面显示的名称。

    [size=99px][color=red]product_img_view.xml[/color][/size][code]
    <openerp>
    <data>
    <record id="product_img_view" model="ir.ui.view">
    <field name="name">product.normal.form</field>
    <field name="model">product.product</field>
    <field name="type">form</field>
    <field name="inherit_id" ref="product.product_normal_form_view"/>
    <field name="arch" type="xml">
    <field name="name" position="before">
    <field name="pic" widget="image" nolabel="1" img_width="300" img_height="300"/>
    </field>
    </field>
    </record>
    </data>
    </openerp>
    [/code]这里的格式其实都已经很固定的了。这里是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大小的图片。
    [size=99px][color=red]效果图:[/color][/size]
    [attach]510[/attach]

    [size=99px][attach]511[/attach][/size]

    [[i] 本帖最后由 Joshua 于 2010-4-3 23:33 编辑 [/i]]


  • 管理员

    [size=99px]最近发现群上有朋友在问如何在product上面添加图片这个问题,我以前也搞过,初学者也有初学者的办法,这里我介绍一下我是如何实现的,因为觉得直接修改addon里面的module有些危险,不建议。所以通过自己写个继承模块来实现。 [/size]
    [size=99px][color=#000000]1.首先是包的构成:[/color][/size]
    [attach]509[/attach]
    [size=99px][color=red]init.py
    [/color][/size][color=#000000][code]import product_img[/code][/color]
    [color=#000000]这里是初始化的时候需要模块里面的那些py文件,我这里是product_img.py。所以写import product_img[/color]

    [size=99px][color=red]terp.py[/color][/size]
    [color=#000000][code]{
    "name" : "simple_product_image",
    "version" : "1.0",
    "depends" : ["product"],
    "init_xml" : [],
    "update_xml" : ["product_img_view.xml"],
    "installable" : True,
    "active" : False,
    "author" : "Joshua",
    }[/code][/color]
    [color=#000000]这里的最重要的有[/color]
    [color=#000000]“depends”:就是需要依赖哪些module,我这里既然是继承product当然就是product了。[/color]
    “update_xml”:就是这个模块需要的Xml。我写了个是product_img_view.xml

    [size=99px][color=red]product_img.py[/color][/size][code]
    #!/usr/bin/python

    from osv import osv, fields

    class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'
    _description = 'Product'
    _columns = {
    'pic':fields.binary('Pic'),
    }

    product_product()[/code]这里是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里面显示的名称。

    [size=99px][color=red]product_img_view.xml[/color][/size][code]
    <openerp>
    <data>
    <record id="product_img_view" model="ir.ui.view">
    <field name="name">product.normal.form</field>
    <field name="model">product.product</field>
    <field name="type">form</field>
    <field name="inherit_id" ref="product.product_normal_form_view"/>
    <field name="arch" type="xml">
    <field name="name" position="before">
    <field name="pic" widget="image" nolabel="1" img_width="300" img_height="300"/>
    </field>
    </field>
    </record>
    </data>
    </openerp>
    [/code]这里的格式其实都已经很固定的了。这里是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大小的图片。
    [size=99px][color=red]效果图:[/color][/size]
    [attach]510[/attach]

    [size=99px][attach]511[/attach][/size]

    [[i] 本帖最后由 Joshua 于 2010-4-3 23:33 编辑 [/i]]



  • good..... 对于图片按比例缩放(客户端), 不知道有没有什么好招..



  • 要是能继承3D 文件就更强大了!



  • 受教了.
    那么颜色之类的属性都不在话下了.



  • 谢谢joshua分享,谢谢


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待