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

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

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

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

文件管理模块中的ftp目录文件夹改名



  • 该模块下的ftp功能很强大,我有个疑问,因为默认的ftp目录(举个例子,产品目录下面的文件夹是命名是用product里面的name来命名的,想修改为命名是用product的code 字段来命名)

    解决方法:
    浏览ducpoment.py,有一段
      if len(obj.fields_get(self.cr, self.uid, ['dirname'])):
                    _dirname_field = 'dirname'

    原来oe的文件管理目录默认是用相应的object里面的dirname字段作为文件夹的名字的,如果该project没有dirname字段会用name名字
    所以,解决方法就是在product。product下增加一个dirname字段,然后让dirname的值和code 的值保持一直,这里用触发器处理


    CREATE OR REPLACE FUNCTION ftpdirname() RETURNS trigger AS $ftpdirname$
        BEGIN
            NEW.dirname := NEW.default_code;
            RETURN NEW;
        END;
    $ftpdirname$ LANGUAGE plpgsql;

    CREATE TRIGGER ftpdirname BEFORE INSERT OR UPDATE ON product_product
        FOR EACH ROW EXECUTE PROCEDURE ftpdirname();


    特别鸣谢shelly,jeff等兄的指导 (其实增加一个function字段的dirname来处理更方便,无奈暂时没通晓,所以在数据库段用触发器完成)



  • 该模块下的ftp功能很强大,我有个疑问,因为默认的ftp目录(举个例子,产品目录下面的文件夹是命名是用product里面的name来命名的,想修改为命名是用product的code 字段来命名)

    解决方法:
    浏览ducpoment.py,有一段
      if len(obj.fields_get(self.cr, self.uid, ['dirname'])):
                    _dirname_field = 'dirname'

    原来oe的文件管理目录默认是用相应的object里面的dirname字段作为文件夹的名字的,如果该project没有dirname字段会用name名字
    所以,解决方法就是在product。product下增加一个dirname字段,然后让dirname的值和code 的值保持一直,这里用触发器处理


    CREATE OR REPLACE FUNCTION ftpdirname() RETURNS trigger AS $ftpdirname$
        BEGIN
            NEW.dirname := NEW.default_code;
            RETURN NEW;
        END;
    $ftpdirname$ LANGUAGE plpgsql;

    CREATE TRIGGER ftpdirname BEFORE INSERT OR UPDATE ON product_product
        FOR EACH ROW EXECUTE PROCEDURE ftpdirname();


    特别鸣谢shelly,jeff等兄的指导 (其实增加一个function字段的dirname来处理更方便,无奈暂时没通晓,所以在数据库段用触发器完成)


  • 管理员

    可以试试酱紫写
    [code]def _new_dirname(self, cr, uid, ids, field_name, arg, context):
            res = {}
            for product in self.browse(cr, uid, ids, context=context):
                res[product.id] = product.name +' '+ product.default_code
            return res
        _columns = {
            'dirname':fields.function(_new_dirname, method=True, string='dirname',type='char',store=True)
        }
    [/code]
    想要更多还有
    [url=http://openerp-china.org/wiki/index.php?title=Ir.model.fields#function]fields.function相关介绍[/url]


登录后回复
 

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