跳至內容
選單
此問題已被標幟
3 回覆
11988 瀏覽次數

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

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
18
8月 20
22731
4
10月 20
5745
2
3月 16
4420
1
7月 25
2231
1
5月 25
965