Zum Inhalt springen
Odoo Menü
  • Anmelden
  • Jetzt gratis testen
  • Apps
    Finanzen
    • Buchhaltung
    • Rechnungsstellung
    • Spesenabrechnung
    • Tabellenkalkulation (BI)
    • Dokumente
    • E-Signatur
    Vertrieb
    • CRM
    • Vertrieb
    • Kassensystem – Shop
    • Kassensystem – Restaurant
    • Abonnements
    • Vermietung
    Websites
    • Website-Builder
    • E-Commerce
    • Blog
    • Forum
    • Livechat
    • E-Learning
    Lieferkette
    • Lager
    • Fertigung
    • PLM
    • Einkauf
    • Wartung
    • Qualität
    Personalwesen
    • Mitarbeiter
    • Personalbeschaffung
    • Abwesenheiten
    • Mitarbeiterbeurteilung
    • Personalempfehlungen
    • Fuhrpark
    Marketing
    • Social Marketing
    • E-Mail-Marketing
    • SMS-Marketing
    • Veranstaltungen
    • Marketing-Automatisierung
    • Umfragen
    Dienstleistungen
    • Projekte
    • Zeiterfassung
    • Außendienst
    • Kundendienst
    • Planung
    • Termine
    Produktivität
    • Dialog
    • Genehmigungen
    • IoT
    • VoIP
    • Wissensdatenbank
    • WhatsApp
    Apps von Drittanbietern Odoo Studio Odoo Cloud-Plattform
  • Branchen
    Einzelhandel
    • Buchladen
    • Kleidergeschäft
    • Möbelhaus
    • Lebensmittelgeschäft
    • Baumarkt
    • Spielwarengeschäft
    Essen & Gastgewerbe
    • Bar und Kneipe
    • Restaurant
    • Fast Food
    • Gästehaus
    • Getränkehändler
    • Hotel
    Immobilien
    • Immobilienagentur
    • Architekturbüro
    • Baugewerbe
    • Immobilienverwaltung
    • Gartenarbeit
    • Eigentümervereinigung
    Beratung
    • Buchhaltungsfirma
    • Odoo-Partner
    • Marketingagentur
    • Anwaltskanzlei
    • Talentakquise
    • Prüfung & Zertifizierung
    Fertigung
    • Textil
    • Metall
    • Möbel
    • Speisen
    • Brauerei
    • Firmengeschenke
    Gesundheit & Fitness
    • Sportklub
    • Brillengeschäft
    • Fitnessstudio
    • Therapeut
    • Apotheke
    • Friseursalon
    Handel
    • Handyman
    • IT-Hardware & -Support
    • Solarenergiesysteme
    • Schuster
    • Reinigungsdienstleistungen
    • HLK-Dienstleistungen
    Sonstiges
    • Gemeinnützige Organisation
    • Umweltschutzagentur
    • Plakatwandvermietung
    • Fotostudio
    • Fahrrad-Leasing
    • Software-Händler
    Alle Branchen ansehen
  • Community
    Lernen
    • Tutorials
    • Dokumentation
    • Zertifizierungen
    • Schulung
    • Blog
    • Podcast
    Bildung fördern
    • Bildungsprogramm
    • Scale-Up! Planspiel
    • Odoo besuchen
    Software anfragen
    • Herunterladen
    • Editionen vergleichen
    • Releases
    Zusammenarbeiten
    • Github
    • Forum
    • Veranstaltungen
    • Übersetzungen
    • Partner werden
    • Dienstleistungen für Partner
    • Buchhaltungsfirma registrieren
    Services anfragen
    • Partner finden
    • Buchhalter finden
    • Einen Experten treffen
    • Implementierungsservices
    • Kundenreferenzen
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Eine Demo erhalten
  • Preiskalkulation
  • Hilfe

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

  • CRM
  • e-Commerce
  • Buchhaltung
  • Lager
  • PoS
  • Projekte
  • MRP
All apps
Sie müssen registriert sein, um mit der Community zu interagieren.
Alle Beiträge Personen Abzeichen
Stichwörter (Alle anzeigen)
odoo accounting v14 pos v15
Über dieses Forum
Sie müssen registriert sein, um mit der Community zu interagieren.
Alle Beiträge Personen Abzeichen
Stichwörter (Alle anzeigen)
odoo accounting v14 pos v15
Über dieses Forum
Hilfe

Extending create method for products (product_product), what inherit should be used in the model?

Abonnieren

Erhalten Sie eine Benachrichtigung, wenn es eine Aktivität zu diesem Beitrag gibt

Diese Frage wurde gekennzeichnet
productinheritanceinheritmodelproduct.product
2 Antworten
16452 Ansichten
Avatar
E.M.

I am trying to extend the create method for product_product so products which are created without an EAN13 code will have one assigned automatically.

As first step I am trying to define a module which extends the 'create' method of product_product class.

I have defined the following model:


class EanAuto ( models.Model ):

        _inherit = 'product_product'

 

        @api.one

        def create(self, cr, uid, vals, context=None):

                print "DEBUG: CREATE 1"

                product_template_id = super(product_product, self).create(cr, uid, vals, context=None)

                print "DEBUG: CREATE 2"

                return product_template_id

 

However it seems it is not correct to inherit product_product. 

Any other comment on the way Super() function is used is also appreciated.

0
Avatar
Verwerfen
Avatar
Anil Kesariya
Beste Antwort

Hi E.M.,

You have applied wrong api method or decorator on create method.

When you define or override any method and if that method is passing id or ids as implicit argument than you can use api.one or api.multi.

But here in this case create method dose have any id yet. create it self saying it going to create not created yet. so Id of record is not generated yet.

So, You can use @api.model

You have to use like this:

class your_class(models.Model):
_inherit = 'your.class' #model name which is going to inherit..

@api.model
def create(self, vals):
#your codee....
    result = super(your_class, self).create(vals)
     #your code.....
    return result

Hope this will helps.

Rgds,

Anil.



1
Avatar
Verwerfen
Avatar
E.M.
Autor Beste Antwort
Following Anil's comments I did this:

# -*- coding: utf-8 -*- from openerp import models, fields, api class EanAuto ( models.Model ): _inherit = 'product.product' @api.model def create(self, vals): print "DEBUG: CREATE 1" new_product = super(EanAuto, self).create(vals) print "DEBUG: CREATE 2" return new_product And it works, I can see print messages and product is normally created.
However, I would like to understand what I did.
The create method for product_product is as follows def create(self, cr, uid, vals, context=None): if context is None: context = {} ctx = dict(context or {}, create_product_product=True) return super(product_product, self).create(cr, uid, vals, context=ctx)

Some questions:
What does Super(EanAuto, self) actually mean?
Why create method from product_product requires cr, uid, vals, context=ctx and the redefined method only uses vals?
What is cr? What is uid?
What is context?





0
Avatar
Verwerfen
PY

From https://docs.python.org/2/library/functions.html#super: "In a class hierarchy with single inheritance, super can be used to refer to parent classes without naming them explicitly, thus making the code more maintainable." For your other questions, you should really take a look at the odoo 8 reference, espacially this part: https://www.odoo.com/documentation/8.0/reference/orm.html#porting-from-the-old-api-to-the-new-api

E.M.
Autor

That link has helped me a lot to understand the API and to read other people's answers, which are often in old API style. Thanks

Diskutieren Sie gerne? Treten Sie bei, statt nur zu lesen!

Erstellen Sie heute ein Konto, um exklusive Funktionen zu nutzen und mit unserer tollen Community zu interagieren!

Registrieren
Verknüpfte Beiträge Antworten Ansichten Aktivität
Supplier Info and Supply Method per product.product, not per product.template? Field inheritance?
inheritance inherit model product.product
Avatar
0
März 15
6001
editing all view locations
product inherit template model v14
Avatar
Avatar
1
Juli 21
2407
Where should I save a model wich inherits from another for adding fields?
fields inheritance inherit model addition
Avatar
Avatar
1
März 15
6386
Error in inheritance a model with Many2many field Gelöst
inheritance model
Avatar
Avatar
Avatar
2
Juni 25
1760
Inheritet Model's field can not be changed over method
inheritance model
Avatar
Avatar
Avatar
2
Juni 25
3990
Community
  • Tutorials
  • Dokumentation
  • Forum
Open Source
  • Herunterladen
  • Github
  • Runbot
  • Übersetzungen
Dienstleistungen
  • Odoo.sh-Hosting
  • Support
  • Upgrade
  • Individuelle Entwicklungen
  • Bildung
  • Buchhalter finden
  • Partner finden
  • Partner werden
Über uns
  • Unsere Firma
  • Markenwerte
  • Kontakt
  • Karriere
  • Veranstaltungen
  • Podcast
  • Blog
  • Kunden
  • Rechtliches • Datenschutz
  • Sicherheit
الْعَرَبيّة 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 ist eine Suite von Open-Source-Betriebsanwendungen, die alle Bedürfnisse Ihres Unternehmens abdecken: CRM, E-Commerce, Buchhaltung, Lager, Kassensystem, Projektmanagement etc.

Das einzigartige Wertversprechen von Odoo ist, dass es gleichzeitig sehr einfach zu bedienen und voll integriert ist.

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