文件管理模块中的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来处理更方便,无奈暂时没通晓,所以在数据库段用触发器完成) -
可以试试酱紫写
def _new_dirname(self, cr, uid, ids, field_name, arg, context):<br /> res = {}<br /> for product in self.browse(cr, uid, ids, context=context):<br /> res[product.id] = product.name +' '+ product.default_code<br /> return res<br /> _columns = {<br /> 'dirname':fields.function(_new_dirname, method=True, string='dirname',type='char',store=True)<br /> }<br />
想要更多还有
[检测到链接无效,已移除]