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

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?



  • 就是点击库存,,然后点击菜单,,中的调拨,,在出现的那个出库单列表中添加收货人姓名,电话,地址列
    😧 刚接触odoo,,看了https://www.cnblogs.com/SamNicole1809/archive/2019/06/03/10968113.html添加字段,也不是很明白


  • 管理员

    出库单上有Partner对象,也就是收货人。收货人上有对应的名称,电话,地址。如果要在picking对象上显示Partner对象上的字段,可以定义related字段,然后在tree视图中指定显示这些字段就可以了。




  • 管理员

    对Odoo的修改是不建议在Odoo已有代码中修改的。我们需要用创建自己的模块,并继承原有的Model,这样就可以做修改了。所以对你的第二个问题的回答是:“不是,你需要创建你自己的addon”



  • 我在addons_path添加了custom-addons,然后在里边建了sale_my文件夹,这个文件夹包含的文件结构如下:

    models
    ---- __init__.py
    ----sale_order_extension.py
    views
    ----sale_order_extension.xml
    __manifest__.py
    

    各自代码如下,基本按照https://www.cnblogs.com/SamNicole1809/archive/2019/06/03/10968113.html里边说明填入代码,后边我在对应的位置看不到新加的字段,,**是哪里出问题了吗?😧 **(下边图片中红圈的都点击过了)
    微信图片1.png
    微信图片2.png

    __init__.py代码如下:
    
    # -*- coding: utf-8 -*-
    
    from . import sale_order_extension
    

    sale_order_extension.py代码如下

    # -*- coding:utf-8 -*-
    """销售模块扩展"""
    
    from odoo import fields, models
    
    # 销售模块扩展
    class SaleOrderExtension(models.Model):
        """销售模块扩展"""
        _inherit = 'sale.order'
    
        # 销售员
        x_salesman = fields.Many2one(
            'res.users',
            string='销售员',
            related='partner_id.user_id'
        )
    

    sale_order_extension.xml代码如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <odoo>
    
        <record id="view_order_form_modify" model="ir.ui.view">
            <field name="name">view.order.form.modify</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <!-- 增加``销售员``字段 -->
                <xpath expr="//group/group/field[@name='partner_id']"
                       position="after"
                >
                    <field name="x_salesman" />
                </xpath>
            </field>
        </record>
    <record id="view_order_tree_modify" model="ir.ui.view">
            <field name="name">view.order.form.modify</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_quotation_tree_with_onboarding"/>
            <field name="arch" type="xml">
                <!-- 增加``创建人``字段 -->
                <xpath expr="//field[@name='date_order']"
                       position="after"
                >
                    <field name="create_uid" />
                </xpath>
            </field>
     </record>
    
    </odoo>
    
    __manifest__.py代码如下:
    
    # -*- coding: utf-8 -*-
    {
        'version': '0.1',
        # any module necessary for this one to work correctly
        'depends': ['base', 'sale',],
        # always loaded
        'data': [
        # 'security/ir.model.access.csv',
        'sale_order_extension.xml',
        ],
    }
    

  • 管理员

    你的sale_my/__init__.py有这样的内容吗?

    from . import models
    

    你的sale_order_extension.xml是在views目录下,在manifest文件里没有指定views路径



  • @风飞花在调拨的tree视图中添加收货人姓名电话和地址,怎么添加? 中说:
    文件结构如下:

    models
    models/__init__.py
    models/sale_order_extension.py
    views
    views/sale_order_extension.xml
    __init__.py
    __manifest__.py
    

    各自代码如下,然后还是按照上贴途中那几个都点击一下,也是没有结果显示😧

    models/ __init__.py代码如下:
    
    # -*- coding: utf-8 -*-
    
    from . import sale_order_extension
    

    models/ sale_order_extension.py代码如下:

    # -*- coding:utf-8 -*-
    """销售模块扩展"""
    
    from odoo import fields, models
    
    # 销售模块扩展
    class SaleOrderExtension(models.Model):
        """销售模块扩展"""
        _inherit = 'sale.order'
    
        # 销售员
        x_salesman = fields.Many2one(
            'res.users',
            string='销售员',
            related='partner_id.user_id'
        )
    

    views/sale_order_extension.xml代码如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <odoo>
    
        <record id="view_order_form_modify" model="ir.ui.view">
            <field name="name">view.order.form.modify</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <!-- 增加``销售员``字段 -->
                <xpath expr="//group/group/field[@name='partner_id']"
                       position="after"
                >
                    <field name="x_salesman" />
                </xpath>
            </field>
        </record>
    <record id="view_order_tree_modify" model="ir.ui.view">
            <field name="name">view.order.form.modify</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_quotation_tree_with_onboarding"/>
            <field name="arch" type="xml">
                <!-- 增加``创建人``字段 -->
                <xpath expr="//field[@name='date_order']"
                       position="after"
                >
                    <field name="create_uid" />
                </xpath>
            </field>
     </record>
    
    </odoo>
    
    __manifest__.py代码如下:
    
    # -*- coding: utf-8 -*-
    {
        'version': '0.1',
        'depends': ['base', 'sale',],
        'data': [
        'views/sale_order_extension.xml',
        ],
    }
    
    __init__.py代码如下
    
    from . import models
    

  • 管理员

    好象,似乎,你没有安装自己的模块啊。你的__manifest__.py里缺少类似'name': 'My Sale Extension'



  • @digitalsatori

    __manifest__.py代码修改如下,不过还是看不到效果,在应用里边也没有增加东西
    
    # -*- coding: utf-8 -*-
    {
        'name':'测试',
        'description':'sale的form、tree、kanban模块显示内容的扩展',
        'version': '1.0',
        'license': 'LGPL-3',
        'depends': ['base', 'sale',],
        'data': [
            'views/sale_order_extension.xml',
        ],
    }
    

  • 管理员

    所以你的模块的路径是 custom-addons/sale_my
    custom-addons添加到了odoo的配置文件中的addons_path中了?

    你是如何启动Odoo的,在启动参数中有没有用-c xxxxx.conf指向你上面的配置文件?

    如果代码和配置都对的情况下,点击刷新本地模块列表按钮后,去掉默认的应用(App)过滤条件后就可以搜索sale_my(你的Odoo模块名)

    找到模块后点击“安装”按钮,没有报错的话,你就应该成功了,检查你的修改结果。



  • @digitalsatori在调拨的tree视图中添加收货人姓名电话和地址,怎么添加? 中说:

    你是如何启动Odoo的,在启动参数中有没有用-c xxxxx.conf指向你上面的配置文件?

    我就是在windows中下载官网一健安装程序安装,这样启动参数怎么修改


  • 管理员

    我在addons_path添加了custom-addons,然后在里边建了sale_my文件夹

    你是这样说的,所以你将custom-addons添加在哪里了?

    我没有在Windows下装过Odoo,不太清楚默认的配置文件的位置,网上说是在 C:\Program Files (x86)\Odoo 11.0\server\odoo.conf 不知道对不对。



  • @digitalsatori

    就是下边这么配置的,,后边那个是添加的,前边那个是默认的
    custom-addons文件夹也是放在server文件夹下边
    addons_path = d:\Program Files\Odoo12\server\odoo\addons,d:\Program Files\Odoo12\server\custom-addons


  • 管理员

    你的设置应该都没问题。搜你的模块:sale_my的时候需要去掉那个默认的“应用”过滤规则,如下图:

    应用_-_Odoo.png



  • @digitalsatori
    不知道什么问题,第三方APP都刷出来了,,sale_my就是没出来,我就算吧这个文件夹放到程序默认的odoo\addons里边也刷不出来(估计应该是哪里有问题)

    先不管了,,也就是说要想https://www.cnblogs.com/SamNicole1809/archive/2019/06/03/10968113.html里边说的增加字段,或者是说想在库存的tree中增加收货人姓名、电话、地址等都是要自定义一个模块,然后related字段,并显示的吧?(没办法在视图字段那边直接添加是吧)


  • 管理员

    建议你还是看官方文档吧:
    https://www.odoo.com/documentation/12.0/howtos/backend.html

    网上东一块西一块的文章好多都有问题的。



  • @digitalsatori
    老是看到教材中用命令行创建模块,,Windows中怎么用命令行,我输入odoo-bin等,都说不是内部命令什么的

    是直接打开windows的cmd,输入下边代码就可执行吗?

    比如下边代码:

    $ odoo-bin scaffold <module name> <where to put it>
    
    

  • 管理员

    windows下的odoo-bin是在d:\Program Files\Odoo12\server\目录下的。你可以把这个目录加到环境目录下,这样就不需要每次都要输入完整路径了。

    另外Windows下建议使用PowerShell。不过最好还是在Linux下搞开发。



  • 1569717160(1).png

    我这么用命令,,发现都是不行的;怎么感觉别人简单的,,我这便都有问题😧


  • 管理员

    windows下应该是odoo-bin.exe吧,你要看这个执行文件在windows下的名字啊。


Log in to reply