Skip to Content
Odoo Menu
  • Prisijungti
  • Išbandykite nemokamai
  • Programėlės
    Finansai
    • Apskaita
    • Pateikimas apmokėjimui
    • Sąnaudos
    • Skaičiuoklė (BI)
    • Dokumentai
    • Pasirašymas
    Pardavimai
    • CRM
    • Pardavimai
    • Kasų sistema - Parduotuvė
    • Kasų sistema - Restoranas
    • Prenumeratos
    • Nuoma
    Svetainės
    • Svetainių kūrėjimo įrankis
    • El. Prekyba
    • Internetinis Tinklaraštis
    • Forumas
    • Tiesioginis pokalbis
    • eMokymasis
    Tiekimo grandinė
    • Atsarga
    • Gamyba
    • PLM
    • Įsigijimai
    • Priežiūra
    • Kokybė
    Žmogaus ištekliai
    • Darbuotojai
    • Įdarbinimas
    • Atostogos
    • Įvertinimai
    • Rekomendacijos
    • Transporto priemonės
    Rinkodara
    • Socialinė rinkodara
    • Rinkodara el. paštu
    • SMS rinkodara
    • Renginiai
    • Rinkodaros automatizavimas
    • Apklausos
    Paslaugos
    • Projektas
    • Darbo laiko žiniaraščiai
    • Priežiūros tarnyba
    • Pagalbos tarnyba
    • Planavimas
    • Rezervacijos
    Produktyvumas
    • Diskucija
    • Artificial Intelligence
    • IoT
    • VoIP
    • Žinių biblioteka
    • WhatsApp
    Trečiųjų šalių programos Odoo Studija Odoo debesijos platforma
  • Pramonės šakos
    Mažmeninė prekyba
    • Knygynas
    • Drabužių parduotuvė
    • Baldų parduotuvė
    • Maisto prekių parduotuvė
    • Techninės įrangos parduotuvė
    • Žaislų parduotuvė
    Food & Hospitality
    • Barai ir pub'ai
    • Restoranas
    • Greitasis maistas
    • Guest House
    • Gėrimų platintojas
    • Hotel
    Nekilnojamasis turtas
    • Real Estate Agency
    • Architektūros įmonė
    • Konstrukcija
    • Property Management
    • Sodininkauti
    • Turto savininkų asociacija
    Konsultavimas
    • Accounting Firm
    • Odoo Partneris
    • Marketing Agency
    • Teisinė firma
    • Talentų paieška
    • Auditai & sertifikavimas
    Gamyba
    • Textile
    • Metal
    • Furnitures
    • Maistas
    • Brewery
    • Įmonių dovanos
    Sveikata & Fitnesas
    • Sporto klubas
    • Akinių parduotuvė
    • Fitneso Centras
    • Sveikatos praktikai
    • Vaistinė
    • Kirpėjas
    Trades
    • Handyman
    • IT įranga ir palaikymas
    • Saulės energijos sistemos
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Kiti
    • Nonprofit Organization
    • Aplinkos agentūra
    • Reklaminių stendų nuoma
    • Fotografavimas
    • Dviračių nuoma
    • Programinės įrangos perpardavėjas
    Browse all Industries
  • Bendrija
    Mokykitės
    • Mokomosios medžiagos
    • Dokumentacija
    • Sertifikatai
    • Mokymai
    • Internetinis Tinklaraštis
    • Tinklalaidės
    Skatinkite švietinimą
    • Švietimo programa
    • Scale Up! Verslo žaidimas
    • Aplankykite Odoo
    Gaukite programinę įrangą
    • Atsisiųsti
    • Palyginkite versijas
    • Leidimai
    Bendradarbiauti
    • Github
    • Forumas
    • Renginiai
    • Vertimai
    • Tapkite partneriu
    • Services for Partners
    • Registruokite jūsų apskaitos įmonę
    Gaukite paslaugas
    • Susiraskite partnerį
    • Susirask buhalterį
    • Susitikti su konsultantu
    • Diegimo paslaugos
    • Klientų rekomendavimas
    • Palaikymas
    • Atnaujinimai
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Gaukite demo
  • Kainodara
  • Pagalba
You need to be registered to interact with the community.
All Posts People Badges
Žymos (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Žymos (View all)
odoo accounting v14 pos v15
About this forum
Pagalba

Overriding route for /web/login path produces ValueError: Expected singleton: res.users()

Prenumeruoti

Get notified when there's activity on this post

This question has been flagged
logincontrollershttp.route
2 Replies
7016 Rodiniai
Portretas
AGILE BUSINESS TECHNOLOGIES

We are trying to override the default controller for the /web/login route in odoo/addons/web/controllers/main.py

The custom code is as follows:


from odoo import http
from odoo.addons.web.controllers.main import Home


class ProductivityCardHome(Home):

@http.route('/web/login', type='http', auth="none")
def web_login(self, redirect=None, **kw):
res = super(ProductivityCardHome, self).web_login(redirect=redirect, kw=kw)
return res

Unfortunately, the code above results in the following errors that we don't know what is the cause.



Traceback (most recent call last):
File "/project/src/odoo/odoo/models.py", line 5199, in ensure_one
_id, = self._ids
ValueError: not enough values to unpack (expected 1, got 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 5, in template_1741
File "/project/src/odoo/addons/website_sale_stock/models/website.py", line 28, in sale_get_order
so = super().sale_get_order(force_create=force_create, code=code, update_pricelist=update_pricelist, force_pricelist=force_pricelist)
File "/project/src/odoo/addons/website_sale/models/website.py", line 250, in sale_get_order
if not sale_order_id and not self.env.user._is_public():
File "/project/src/odoo/odoo/addons/base/models/res_users.py", line 905, in _is_public
self.ensure_one()
File "/project/src/odoo/odoo/models.py", line 5202, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: res.users()

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/project/src/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/project/src/odoo/odoo/http.py", line 810, in dispatch
r = self._call_function(**self.params)
File "/project/src/odoo/odoo/http.py", line 359, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/project/src/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/project/src/odoo/odoo/http.py", line 351, in checked_call
result.flatten()
File "/project/src/odoo/odoo/http.py", line 1277, in flatten
self.response.append(self.render())
File "/project/src/odoo/odoo/http.py", line 1270, in render
return env["ir.ui.view"]._render_template(self.template, self.qcontext)
File "/project/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1980, in _render_template
return self.browse(self.get_view_id(template))._render(values, engine)
File "/project/src/odoo/addons/website/models/ir_ui_view.py", line 433, in _render
return super(View, self)._render(values, engine=engine, minimal_qcontext=minimal_qcontext)
File "/project/src/odoo/addons/web_editor/models/ir_ui_view.py", line 29, in _render
return super(IrUiView, self)._render(values=values, engine=engine, minimal_qcontext=minimal_qcontext)
File "/project/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1988, in _render
return self.env[engine]._render(self.id, qcontext)
File "/project/src/odoo/odoo/tools/profiler.py", line 289, in _tracked_method_render
return method_render(self, template, values, **options)
File "/project/src/odoo/odoo/addons/base/models/ir_qweb.py", line 76, in _render
result = super()._render(template, values=values, **compile_options)
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 134, in _render
result = ''.join(rendering)
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 186, in template_190
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 29, in template_189
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 1222, in template_1388
File "", line 1157, in t_call_content
File "", line 1109, in t_call_content
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 223, in render_template
raise QWebException("Error when render the template", self, options,
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/project/src/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/project/src/odoo/odoo/http.py", line 810, in dispatch
r = self._call_function(**self.params)
File "/project/src/odoo/odoo/http.py", line 359, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/project/src/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/project/src/odoo/odoo/http.py", line 351, in checked_call
result.flatten()
File "/project/src/odoo/odoo/http.py", line 1277, in flatten
self.response.append(self.render())
File "/project/src/odoo/odoo/http.py", line 1270, in render
return env["ir.ui.view"]._render_template(self.template, self.qcontext)
File "/project/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1980, in _render_template
return self.browse(self.get_view_id(template))._render(values, engine)
File "/project/src/odoo/addons/website/models/ir_ui_view.py", line 433, in _render
return super(View, self)._render(values, engine=engine, minimal_qcontext=minimal_qcontext)
File "/project/src/odoo/addons/web_editor/models/ir_ui_view.py", line 29, in _render
return super(IrUiView, self)._render(values=values, engine=engine, minimal_qcontext=minimal_qcontext)
File "/project/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1988, in _render
return self.env[engine]._render(self.id, qcontext)
File "/project/src/odoo/odoo/tools/profiler.py", line 289, in _tracked_method_render
return method_render(self, template, values, **options)
File "/project/src/odoo/odoo/addons/base/models/ir_qweb.py", line 76, in _render
result = super()._render(template, values=values, **compile_options)
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 134, in _render
result = ''.join(rendering)
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 186, in template_190
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 29, in template_189
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 221, in render_template
raise e
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 1222, in template_1388
File "", line 1157, in t_call_content
File "", line 1109, in t_call_content
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 223, in render_template
raise QWebException("Error when render the template", self, options,
odoo.addons.base.models.qweb.QWebException: Expected singleton: res.users()
Traceback (most recent call last):
File "/project/src/odoo/odoo/models.py", line 5199, in ensure_one
_id, = self._ids
ValueError: not enough values to unpack (expected 1, got 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/project/src/odoo/odoo/addons/base/models/qweb.py", line 219, in render_template
yield from compiled_fn(self, values, log)
File "", line 5, in template_1741
File "/project/src/odoo/addons/website_sale_stock/models/website.py", line 28, in sale_get_order
so = super().sale_get_order(force_create=force_create, code=code, update_pricelist=update_pricelist, force_pricelist=force_pricelist)
File "/project/src/odoo/addons/website_sale/models/website.py", line 250, in sale_get_order
if not sale_order_id and not self.env.user._is_public():
File "/project/src/odoo/odoo/addons/base/models/res_users.py", line 905, in _is_public
self.ensure_one()
File "/project/src/odoo/odoo/models.py", line 5202, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: res.users()

Error when render the template
ValueError: Expected singleton: res.users()
Template: website_sale.header_cart_link
Path: /t/t[1]
Node:


0
Portretas
Atmesti
Portretas
AGILE BUSINESS TECHNOLOGIES
Autorius Best Answer

We figured it out. The working code is:

# -*- coding: utf-8 -*-
from
odoo import http
from odoo.addons.web.controllers import main


class Home(main.Home):

@http.route('/web/login')
def web_login(self, *args, **kw):
return super().web_login(*args, **kw)



Apparently, the web_login method was also modified in the website module to add some options to the http.route decorator for public access purposes which makes sense when you have the website module installed.
The cause of the error we are getting is that we undid the changes made by the website module by re-setting the options of the http.route decorator in our custom code. As noticed in the working code above, we removed those options.


0
Portretas
Atmesti
Portretas
Waleed Ali Mohsen
Best Answer

Try the below:

 @http.route('/web/login', type='http', auth="none")
def web_login(self, redirect=None, **kw):
res = super(ProductivityCardHome, self).web_login(redirect=redirect, **kw)
return res


1
Portretas
Atmesti
AGILE BUSINESS TECHNOLOGIES
Autorius

Hi @Waleed. Thank you for taking the time to answer our question. We updated the code as you suggested but still getting the same error.

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Registracija
Related Posts Replies Rodiniai Veikla
log in controller with react
login controllers
Portretas
0
lapkr. 23
3334
Controller ignoring args Solved
controllers arguments http.route
Portretas
Portretas
Portretas
2
gruod. 22
10233
Properly inherit web controller and overwrite web_login method Solved
inheritance login controllers
Portretas
Portretas
Portretas
3
geg. 21
16059
Force authentication of a web page
login controllers odoo
Portretas
Portretas
1
lapkr. 20
8703
Controller giving 404 Error
controllers
Portretas
Portretas
Portretas
2
rugp. 25
5399
Bendrija
  • Mokomosios medžiagos
  • Dokumentacija
  • Forumas
Atvirasis kodas
  • Atsisiųsti
  • Github
  • Runbot
  • Vertimai
Paslaugos
  • Odoo.sh talpinimas
  • Palaikymas
  • Atnaujinti
  • Pritaikytas programavimo kūrimas
  • Švietimas
  • Susirask buhalterį
  • Susiraskite partnerį
  • Tapkite partneriu
Apie mus
  • Mūsų įmonė
  • Prekės ženklo turtas
  • Susisiekite su mumis
  • Darbo pasiūlymai
  • Renginiai
  • Tinklalaidės
  • Internetinis Tinklaraštis
  • Klientai
  • Teisinis • Privatumas
  • Saugumas
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo yra atvirojo kodo verslo programų rinkinys, kuris apima visas įmonės poreikius: CRM, El. Prekybą, Apskaitą, Atsargų, Kasų sistemą, Projektų valdymą ir kt.

Unikali Odoo vertės pasiūla – būti tuo pačiu metu labai lengvai naudojama ir visiškai integruota sistema.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now