Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

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

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

Odoo12: How to get the current ID of a record before it is created ?

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
currentidactive_idodoo12
5 Odpowiedzi
18644 Widoki
Awatar
Rihene

Hello my Friends;

May anyone help me know how can i get the current ID of a record before it is created in database.

I have tried :

  1. to get the active_id it does not exist in the url

  2. self._origin.id

  3. self.id

Need your help my friends please.

Thanks a lot in advance.

Best regards.

0
Awatar
Odrzuć
Awatar
Sudhir Arya (ERP Harbor Consulting Services)
Najlepsza odpowiedź

No, you cannot have the ID of the record if it is not created yet.

I don't know why you need the ID but if you want to access the value of the other fields, you can use onchange method to get the value of the fields and do some operations.

@api.onchange('partner_id')
def onchange_partner(self):
self.partner_id
self.my_field1
self.my_field2
   # You can access the value of the fields in the onchange like this


6
Awatar
Odrzuć
Awatar
MUHAMMAD Imran
Najlepsza odpowiedź

self.id is returning false because it is defined only after creation. An alternative idea to get the id before saving is find the last id of the models and calculate the next one.
For ex:
search_ids = self.pool.get('your.model').search(cr, uid, [])
last_id = search_ids and max(search_ids)



It gives the last id of that model, you will get the next id by simple addition by one. And I think you can't create all rows at a time. It is one by one process(In code).
I think it may help you
2
Awatar
Odrzuć
Awatar
Lucia C.H.
Najlepsza odpowiedź

There are two additional ways I can think of:

- use models.NewId: This doesn't give you an actual ID (integer) but depending on your code you can use it as a placeholder.

Usage:

if isinstance(self.id, models.NewId):
    # your code

(note that in this case self.id does not exist in the db yet, but you can imagine it is already "pre-ordered" in the cache)

- It helps to know that Odoo assigns IDs in a strictly linear way: The next record will always have the ID of the previously created record plus one. I guess it is a bit of a cheaty way to work with this fact & it is only useful if you are 101% sure that nobody creates or deletes records "in between". However if you decide to try this method a good approach would be:

recordset = self.env['your.model'].search([('id', '!=', False), limit=1, order="id desc")

This will give you exactly one recordset (the newest one) & accordingly exactly one ID.

previous_id = recordset.ids[0]

So the "not yet existing" ID you are looking for is: newest_id = previous_id + 1


1
Awatar
Odrzuć
Awatar
Arash Homayounfar
Najlepsza odpowiedź
    @api.model
def create(self, vals):
res = super(SdProjectOverviewDiagram, self).create(vals)
values = vals.get('values')[0][2]
location_module = self.env['sd_project_overview.location']

location_module.create({'diagram': res.id, 'value': 2})

return res

This way you can create a record on another module while you are creating this record.
0
Awatar
Odrzuć
Awatar
Paulo Matos
Najlepsza odpowiedź

You can try:

@api.model
def create(self, vals):
res = super(YourClassName, self).create(vals)
print('Next ID will be:', res.id)
return res

Thanks.

-2
Awatar
Odrzuć
Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
how to pass sale.order active id into wizard? Rozwiązane
wizard id active_id
Awatar
Awatar
Awatar
3
lis 17
21342
When to use active_id vs id
crm active_id odoo12 Odoo12.0 Odoo12
Awatar
Awatar
1
wrz 20
5391
Odoo Mail Sending Limit Rozwiązane
odoo12
Awatar
Awatar
Awatar
2
gru 23
16339
(Document type: Invoice, Operation: write) - (Records: [], User: 2)
odoo12
Awatar
0
paź 23
33
Error while importing data in Odoo12: An unknown issue occurred during import (possibly lost connection, data limit exceeded or memory limits exceeded)
odoo12
Awatar
Awatar
Awatar
Awatar
3
paź 23
790
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة 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 to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

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