Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de bienes inmuebles
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Odoo Community
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyectos
  • MRP
All apps
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

ValueError: Expected singleton

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
sale.orderodoo10singeltonerror
2 Respuestas
31787 Vistas
Avatar
Dishon Kadoh

I have added an extra field which relates to the project.project model in the sale order

class InheritSaleOrder(models.Model):
_inherit = 'sale.order'

project_name = fields.Many2one(comodel_name="project.project", string="Project Name", required=False)

i also have a customized module for project budget which is supposed  to automatically pick the all the products in the sale order line relating to a specific order using onchange here is my function

@api.multi
@api.onchange('project_id')
def change_project_id(self):
#get quotation id
quotation_id = self.project_id

if(quotation_id!=""):

#get quotation info
quotation_list = self.env['sale.order'].search([('project_name','=',quotation_id.id)])
data = {}
#loop through quotation lines
new_lines = self.env['project.budget.line']
for line in quotation_list.order_line: #line 83
##populate items
data = {
'product_id': line.product_id.id,
'product_categ_id':line.product_categ_id,
'product_qty':line.product_uom_qty ,
'product_uom' : line.product_uom.id ,
'price_unit': line.product_id.standard_price #TODO - Use the pricelist to retrieve item prices
}
new_line = new_lines.new(data) #adding new items to the model
new_lines += new_line
#self.update('reference_bq' : value)
self.budget_line_items += new_lines # set budget lines
return {}
#return vals

# on change update lines

however when i try to run my code i get a singleton error i dont know what am missing kindly assist

File "/home/dishon/Desktop/odoo-dev/todo_app/project_budget/models/models.py", line 83, in change_project_id
    for line in quotation_list.order_line:
  File "/home/dishon/Desktop/odoo-dev/odoo/odoo/fields.py", line 909, in __get__
    record.ensure_one()
  File "/home/dishon/Desktop/odoo-dev/odoo/odoo/models.py", line 4848, in ensure_one
    raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: sale.order(23, 22, 21)


0
Avatar
Descartar
Sehrish

Read Odoo Customization: https://learnopenerp.tumblr.com/

Avatar
Caret IT Solutions Pvt. Ltd.
Mejor respuesta

Hi,

This error occurred because you are trying to access multiple records list.

The error is from this line:

for line in quotation_list.order_line:

because quotation_list  has sale.order(23, 22, 21) records so you have to put one more for loop in quotation_list


So your code should be:


@api.multi

@api.onchange('project_id')

def change_project_id(self):

    #get quotation id

    quotation_id = self.project_id


    if(quotation_id!=""):


        #get quotation info

        quotation_list = self.env['sale.order'].search([('project_name','=',quotation_id.id)])

        data = {}

        #loop through quotation lines

        new_lines = self.env['project.budget.line']

        for quotation in quotation_list: #line 83

            for line in quotation.order_line:

                ##populate items

                data = {

                    'product_id': line.product_id.id,

                    'product_categ_id':line.product_categ_id,

                    'product_qty':line.product_uom_qty ,

                    'product_uom' : line.product_uom.id ,

                    'price_unit': line.product_id.standard_price #TODO - Use the pricelist to retrieve item prices

                }

                new_line = new_lines.new(data) #adding new items to the model

                new_lines += new_line

        #self.update('reference_bq' : value)

        self.budget_line_items += new_lines # set budget lines

        return {}

    #return vals


    # on change update lines

0
Avatar
Descartar
Dishon Kadoh
Autor

Thanks its working now

Avatar
Mitul Shingala
Mejor respuesta

hello

in your code, at somewhere you get the multiple records and from that you try access the field.

for eg. into your code you get multiple records into the variable quotation_list. and into the for loop you directly

access the order_line. that's why you get an error.

try like below code:

for quotation in quotation_list:

    for line in quotation.order_line: # made this change in line 83 and add above for loop into your code.

        # your code here

        ##populate items

 

I hope may this will helps you.

0
Avatar
Descartar
Dishon Kadoh
Autor

Thanks Mitul Shingala its working right

¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
Confirm Sale and skip Payment - net_amount is getting added to prev_outstanding_balance
sale.order odoo10
Avatar
0
oct 22
2602
sale.order.warehouse_id change doesn´t affect warehouse_id in stock.picking, stock.move, stock.quant models
stock sale.order odoo10
Avatar
0
may 20
4301
Customer pricelist in odoo 10
sale.order pricelist odoo10
Avatar
Avatar
Avatar
3
jul 18
6217
Adding a new field to sale order lines in sale orders (quotes/sale orders) Resuelto
qweb sale.order.line sale.order odoo10
Avatar
Avatar
1
jul 18
8290
How to return sales order view action on Quotation view screen for odoo 10
sale.order return odoo odoo10
Avatar
0
may 18
5803
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة 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 ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Sitio web hecho con

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