用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