用python本地下载文件
我在用python本地下载文件,python,csv,export,openerp,Python,Csv,Export,Openerp,我在OpenERP中有一个python方法,它生成一个CSV文件。我的问题是如何设置CSV的默认路径将是本地路径,而不是服务器上的路径 我的一部分代码将此与open('export_data.csv','wb')一起作为csvfile:。将文件保存在服务器上。我希望文件保存在客户端位置 你对如何做到这一点有什么想法吗 openerp内置的导出数据功能不是一个选项 使用fields.binary 在OpenERP中,向客户端返回二进制文件的一种常见方法是使用fields.binary列。您可以将其
OpenERP
中有一个python方法,它生成一个CSV
文件。我的问题是如何设置CSV的默认路径将是本地路径,而不是服务器上的路径
我的一部分代码将此与open('export_data.csv','wb')一起作为csvfile:
。将文件保存在服务器上。我希望文件保存在客户端位置
你对如何做到这一点有什么想法吗
openerp内置的导出数据功能不是一个选项 使用fields.binary
在OpenERP中,向客户端返回二进制文件的一种常见方法是使用fields.binary
列。您可以将其放入一个仅在会话期间有效的TransientModel
对象(以前称为osv_memory
,用于创建交互式向导)。二进制字段值可以作为先前操作的结果进行设置,也可以通过使用fields.function
列对其进行模拟来动态计算
您可以在官方插件中找到几个这样的示例,例如生成CVS/PO/TGZ文件的。一个陷阱是,出于历史RPC传输原因,二进制值必须是base64编码的
使用静态下载URL
从OpenERP6.1开始,还可以从服务器文件系统直接下载文件。这很简单,只需将文件的URL放在fields.char
值中,作为根植于模块中的相对URL,例如/module/path/to/file
。然后使用widget=“url”
将此字段作为链接添加到表单视图中。使用这种方法的一个例子是邮件客户端插件的开发
这适用于作为模块一部分的静态文件,但不适用于由于用户操作而由系统生成的文件,因为它们可能不应存储在模块的文件系统中,即使是暂时的。在安全性良好的安装上,OpenERP服务器进程甚至可能无权写入模块源所在的文件系统
还有其他选择,例如编写您自己的web控制器,但上述解决方案在大多数情况下应该足够有效。使用fields.binary 在OpenERP中,向客户端返回二进制文件的一种常见方法是使用
fields.binary
列。您可以将其放入一个仅在会话期间有效的TransientModel
对象(以前称为osv_memory
,用于创建交互式向导)。二进制字段值可以作为先前操作的结果进行设置,也可以通过使用fields.function
列对其进行模拟来动态计算
您可以在官方插件中找到几个这样的示例,例如生成CVS/PO/TGZ文件的。一个陷阱是,出于历史RPC传输原因,二进制值必须是base64编码的
使用静态下载URL
从OpenERP6.1开始,还可以从服务器文件系统直接下载文件。这很简单,只需将文件的URL放在fields.char
值中,作为根植于模块中的相对URL,例如/module/path/to/file
。然后使用widget=“url”
将此字段作为链接添加到表单视图中。使用这种方法的一个例子是邮件客户端插件的开发
这适用于作为模块一部分的静态文件,但不适用于由于用户操作而由系统生成的文件,因为它们可能不应存储在模块的文件系统中,即使是暂时的。在安全性良好的安装上,OpenERP服务器进程甚至可能无权写入模块源所在的文件系统
还有其他选项,例如编写您自己的web控制器,但上述解决方案在大多数情况下应该足够有效。翻译导出向导示例中的文件已更新,让我们检查它是否为openerp 7.0翻译导出向导示例中的文件已更新,让我们检查它是否为openerp 7.0