Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
3 Відповіді
11417 Переглядів

Problem:

I wrote a new web controller in a new odoo addon - something like that:

@http.route('/web/somefunction', type='http', auth="none")
def somefunction(self, redirect='/web', **kw):
# render domething

Now if I open the URL with the parameter session_id odoo throws me 404. I also set the database with the parameter db but I think there should be no problem with the database because I use auth in the route definition.

The url:

http://localhost:8069/web/somefunction?db=somedb&session_id=61dd713f86c71c42fd72b92849deba77f451c15c

If I remove the session_id parameter the controller function is found and called.


Further information:

I need to set the session_id because I want to change the id. Here I use the functionality of openerp/http.py (class: Root, function: setup_session).

Also I created the session first (in another function which redirects to the "somefunction" controller function:

new_session = http.root.session_store.new()
new_session.db = request.session.db # just a test

So I use the session id of new_session. In my opinion this should work.


Do you have any ideas?

Аватар
Відмінити
Найкраща відповідь

Fix the line of route tha contains auth=''none

You put none outside of ''

It should be auth='none'

Аватар
Відмінити
Автор

Thanks for the answer. But this was a copy-past-error. This is correct in my code.

Найкраща відповідь

I think this is default behaviour of http://werkzeug.pocoo.org/ tool -- it gets session_id from cookie or from get parameters.


As for redefining sessions, try to check this file: https://github.com/yelizariev/addons-yelizariev/blob/8.0/web_sessions_management/http.py

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
18
серп. 20
22166
4
жовт. 20
5072
2
бер. 16
3867
1
трав. 25
462
0
черв. 24
1517