我正在研究Odoo12。当我登录odoo时,它将在同一登录页面上重定向我,并且所有登录选项均对我可用。因此,问题与重定向有关。我已经测试了代码,并获得了request.params ['login_success']在打印中显示'false'的值。我的python代码在下面。
@http.route(website=True, auth="public")
def web_login(self, redirect=None, *args, **kw):
response = super(CustomAuthSignupHome, self).web_login(redirect=redirect, *args, **kw)
print('Loginnn', request.params['login_success'])
if not redirect and request.params['login_success']:
user = request.env['res.users'].browse(request.uid)
if user.has_group('base.group_user'):
if user.partner_id.company_type == 'company':
redirect = '/dashboard'
else:
redirect = b'/web?' + request.httprequest.query_string
return http.redirect_with_hash(redirect)
return response
因此,任何人都可以为该问题提出解决方案。
谢谢。
答案 0 :(得分:0)
问题解决了。错过了其他重定向条件
@http.route(website=True, auth="public")
def web_login(self, redirect=None, *args, **kw):
response = super(CustomAuthSignupHome, self).web_login(redirect=redirect, *args, **kw)
if not redirect and request.params['login_success']:
user = request.env['res.users'].browse(request.uid)
if user.has_group('base.group_user'):
if user.partner_id.company_type == 'company':
redirect = '/dashboard'
else:
redirect = b'/web?' + request.httprequest.query_string
else:
redirect = '/my/account'
return http.redirect_with_hash(redirect)
return response
答案 1 :(得分:0)
您可以创建一个继承自 res.user 的模型并使用计算修改 action_id。
class InheritResUsers(models.Model):
_name = 'res.users'
_inherit = ['res.users']
# Nouveaux champs
action_id = fields.Many2one('ir.actions.actions', string='Home Action', compute='get_home_page')
def get_home_page(self):
for project in self:
# we position ourselves in the ir.actions.act_window model
tasks = self.env['ir.actions.act_window']
#we search for the specific view by using the name and une xml_id
task_ids = tasks.search(
[['xml_id', '=', ' project.open_view_project_all'], ['name', '=', 'Projects']])
for task in task_ids: # Browse the table by adding the page id to the inherited action_id field
self.action_id=task.id
InheritResUsers()
在这里我重定向到我的模块的主页。