文件管理模块中的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 />
想要更多还有
[检测到链接无效,已移除]
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login