1

I'm trying to create a new invoice in controller:

request.env['account.move'].sudo().create([
    {
        'move_type': 'out_invoice',
        'journal_id': 1,
        'invoice_date': '2020-01-10',
        'invoice_line_ids': [(0, 0, {'product_id': 21, 'price_unit': 1000.0})],
    }])

But i got this error

Expected singleton: res.users()

General Grievance
  • 4,555
  • 31
  • 31
  • 45
fudu
  • 617
  • 1
  • 10
  • 19

1 Answers1

1

I've found the answer with the help of my leader, here it is:

This issue is because we missing self.env.user, to do this, we must add .with_user(SUPERUSER_ID) after model call.

Example:

from odoo import SUPERUSER_ID

request.env['account.move'].with_user(SUPERUSER_ID).sudo().create([
    {
        'move_type': 'out_invoice',
        'journal_id': 1,
        'invoice_date': '2020-01-10',
        'invoice_line_ids': [(0, 0, {'product_id': 21, 'price_unit': 1000.0})],
    }])
fudu
  • 617
  • 1
  • 10
  • 19