Passa al contenuto
Odoo Menu
  • Accedi
  • Provalo gratis
  • App
    Finanze
    • Contabilità
    • Fatturazione
    • Note spese
    • Fogli di calcolo (BI)
    • Documenti
    • Firma
    Vendite
    • CRM
    • Vendite
    • Punto vendita Negozio
    • Punto vendita Ristorante
    • Abbonamenti
    • Noleggi
    Siti web
    • Configuratore sito web
    • E-commerce
    • Blog
    • Forum
    • Live chat
    • E-learning
    Supply chain
    • Magazzino
    • Produzione
    • PLM
    • Acquisti
    • Manutenzione
    • Qualità
    Risorse umane
    • Dipendenti
    • Assunzioni
    • Ferie
    • Valutazioni
    • Referral dipendenti
    • Parco veicoli
    Marketing
    • Social marketing
    • E-mail marketing
    • SMS marketing
    • Eventi
    • Marketing automation
    • Sondaggi
    Servizi
    • Progetti
    • Fogli ore
    • Assistenza sul campo
    • Helpdesk
    • Pianificazione
    • Appuntamenti
    Produttività
    • Comunicazioni
    • Approvazioni
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    App di terze parti Odoo Studio Piattaforma cloud Odoo
  • Settori
    Retail
    • Libreria
    • Negozio di abbigliamento
    • Negozio di arredamento
    • Alimentari
    • Ferramenta
    • Negozio di giocattoli
    Cibo e ospitalità
    • Bar e pub
    • Ristorante
    • Fast food
    • Pensione
    • Grossista di bevande
    • Hotel
    Agenzia immobiliare
    • Agenzia immobiliare
    • Studio di architettura
    • Edilizia
    • Gestione immobiliare
    • Impresa di giardinaggio
    • Associazione di proprietari immobiliari
    Consulenza
    • Società di contabilità
    • Partner Odoo
    • Agenzia di marketing
    • Studio legale
    • Selezione del personale
    • Audit e certificazione
    Produzione
    • Tessile
    • Metallo
    • Arredamenti
    • Alimentare
    • Birrificio
    • Ditta di regalistica aziendale
    Benessere e sport
    • Club sportivo
    • Negozio di ottica
    • Centro fitness
    • Centro benessere
    • Farmacia
    • Parrucchiere
    Commercio
    • Tuttofare
    • Hardware e assistenza IT
    • Ditta di installazione di pannelli solari
    • Calzolaio
    • Servizi di pulizia
    • Servizi di climatizzazione
    Altro
    • Organizzazione non profit
    • Ente per la tutela ambientale
    • Agenzia di cartellonistica pubblicitaria
    • Studio fotografico
    • Punto noleggio di biciclette
    • Rivenditore di software
    Carica tutti i settori
  • Community
    Apprendimento
    • Tutorial
    • Documentazione
    • Certificazioni 
    • Formazione
    • Blog
    • Podcast
    Potenzia la tua formazione
    • Programma educativo
    • Scale Up! Business Game
    • Visita Odoo
    Ottieni il software
    • Scarica
    • Versioni a confronto
    • Note di versione
    Collabora
    • Github
    • Forum
    • Eventi
    • Traduzioni
    • Diventa nostro partner
    • Servizi per partner
    • Registra la tua società di contabilità
    Ottieni servizi
    • Trova un partner
    • Trova un contabile
    • Incontra un esperto
    • Servizi di implementazione
    • Testimonianze dei clienti
    • Supporto
    • Aggiornamenti
    GitHub Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Richiedi una demo
  • Prezzi
  • Aiuto

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

  • CRM
  • e-Commerce
  • Contabilità
  • Magazzino
  • PoS
  • Progetti
  • MRP
All apps
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
Assistenza

ValueError: Expected singleton

Iscriviti

Ricevi una notifica quando c'è un'attività per questo post

La domanda è stata contrassegnata
sale.orderodoo10singeltonerror
2 Risposte
31734 Visualizzazioni
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
Abbandona
Sehrish

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

Avatar
Caret IT Solutions Pvt. Ltd.
Risposta migliore

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
Abbandona
Dishon Kadoh
Autore

Thanks its working now

Avatar
Mitul Shingala
Risposta migliore

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
Abbandona
Dishon Kadoh
Autore

Thanks Mitul Shingala its working right

Ti stai godendo la conversazione? Non leggere soltanto, partecipa anche tu!

Crea un account oggi per scoprire funzionalità esclusive ed entrare a far parte della nostra fantastica community!

Registrati
Post correlati Risposte Visualizzazioni Attività
Confirm Sale and skip Payment - net_amount is getting added to prev_outstanding_balance
sale.order odoo10
Avatar
0
ott 22
2575
sale.order.warehouse_id change doesn´t affect warehouse_id in stock.picking, stock.move, stock.quant models
stock sale.order odoo10
Avatar
0
mag 20
4287
Customer pricelist in odoo 10
sale.order pricelist odoo10
Avatar
Avatar
Avatar
3
lug 18
6208
Adding a new field to sale order lines in sale orders (quotes/sale orders) Risolto
qweb sale.order.line sale.order odoo10
Avatar
Avatar
1
lug 18
8260
How to return sales order view action on Quotation view screen for odoo 10
sale.order return odoo odoo10
Avatar
0
mag 18
5771
Community
  • Tutorial
  • Documentazione
  • Forum
Open source
  • Scarica
  • Github
  • Runbot
  • Traduzioni
Servizi
  • Hosting Odoo.sh
  • Supporto
  • Aggiornamenti
  • Sviluppi personalizzati
  • Formazione
  • Trova un contabile
  • Trova un partner
  • Diventa nostro partner
Chi siamo
  • La nostra azienda
  • Branding
  • Contattaci
  • Lavora con noi
  • Eventi
  • Podcast
  • Blog
  • Clienti
  • Note legali • Privacy
  • Sicurezza
الْعَرَبيّة 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 è un gestionale di applicazioni aziendali open source pensato per coprire tutte le esigenze della tua azienda: CRM, Vendite, E-commerce, Magazzino, Produzione, Fatturazione elettronica, Project Management e molto altro.

Il punto di forza di Odoo è quello di offrire un ecosistema unico di app facili da usare, intuitive e completamente integrate tra loro.

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