Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
6570 Widoki

Hello!


A freelancer build a module to write information on a FTP server. He generate the file local and copy after on the FTP.

But on my odoo Server the Phyton script can´t write on filesystem:


Traceback (most recent call last):

File "/opt/odoo/odoo-server/openerp/http.py", line 536, in _handle_exception

return super(JsonRequest, self)._handle_exception(exception)

File "/opt/odoo/odoo-server/openerp/http.py", line 573, in dispatch

result = self._call_function(**self.params)

File "/opt/odoo/odoo-server/openerp/http.py", line 309, in _call_function

return checked_call(self.db, *args, **kwargs)

File "/opt/odoo/odoo-server/openerp/service/model.py", line 113, in wrapper

return f(dbname, *args, **kwargs)

File "/opt/odoo/odoo-server/openerp/http.py", line 306, in checked_call

return self.endpoint(*a, **kw)

File "/opt/odoo/odoo-server/openerp/http.py", line 802, in __call__

return self.method(*args, **kw)

File "/opt/odoo/odoo-server/openerp/http.py", line 402, in response_wrap

response = f(*args, **kw)

File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 941, in call_button

action = self._call_kw(model, method, args, {})

File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 929, in _call_kw

return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)

File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/opt/odoo/odoo-addons/ftp_connection/ftp_connect.py", line 60, in create_file

f = open(filename, 'w')

IOError: [Errno 13] Keine Berechtigung: 'WHOUT00023.txt'


It seems not a problem with unsuffient permisson on Linux. It seems that Python cannot write because of odoo.

Has some an idea, or need you more code from the python script?


Thank you!!

Awatar
Odrzuć
Autor Najlepsza odpowiedź

Hello!


Thank you .. i found now the problem.

I also try to use a direct path to an folder ... but I has to restart odoo, after changes on the .py file.

So now it works, thank you!

Awatar
Odrzuć
Najlepsza odpowiedź

If you will save a temporary file better use a named file that is a temporary file so permissions are not involved. if you need the file in an specific folder then you need to check permission for the user that runs Odoo server, but if you will save the file in an FTP location better use a temporary file, I deal with this before. An Example of using NamedTemporaryFile

from tempfile import NamedTemporaryFile
named_zip = NamedTemporaryFile( suffix=".tmp", prefix="tmp__h2h__", delete=False )# or default True for delete the file after the first use
#to get filename
named_zip.name
named_zip.close() 



Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
gru 22
6430
2
cze 20
42095
0
sie 18
3593
1
cze 16
8392
0
maj 22
10729