Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Social media Marketing
    • E-mailmarketing
    • SMS Marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Goedkeuringen
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelzaak
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Food & Hospitality
    • Bar en Pub
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brewery
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Trades
    • Klusjesman
    • IT-hardware & support
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Browse all Industries
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijs- programma
    • Scale Up! Business Game
    • Bezoek Odoo
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Word een Partner
    • Services for Partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help

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

  • CRM
  • e-Commerce
  • Boekhouding
  • Voorraad
  • PoS
  • Project
  • MRP
All apps
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

Access one2many list in many2one onchange event

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
ormodooV8
7 Antwoorden
13819 Weergaven
Avatar
Harald F

i want to acccess a one2many field in the onchange event of the corresponding many2one field.

I have defined 2 Models:

class model_a(osv.osv_memory):
_name = "model.a"
_columns = {'b_ids' : fields.one2many('model.b', 'a_id')}

@api.onchange('b_ids')
def test(self):
print "Onchange Function model.a"
for line in self.b_ids:
print line.field1

class model_b(osv.osv_memory):
_name = "model.b"
_columns = {'a_id' : fields.many2one('model.a'),
'field1' : fields.char('field1')}

@api.onchange('field1', 'a_id')
def test(self):
print "Onchange Function model.b"
for line in self.a_id.b_ids:
print self.a_id
print line.field1

There is a view where you can edit the List:

        <record id="model_a_tree_view" model="ir.ui.view">
<field name="name">model_a_tree_view</field>
<field name="model">model.a</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Test">
<group >
<group colspan="4">
<field name="b_ids" widget="one2many_list" colspan="4">
<tree string="b_s" editable="bottom" >
<field name="a_id" invisible="1" />
<field name="field1" />
</tree>
</field>
</group>
</group>
</form>
</field>
</record>

I expected to see all model.b entries in the one2many field b_ids. Instead i get only the current entry.

I could use the onchange funtion of  model.a field b_ids, but i cant see wich line has changed and i would have to revalidate all entries.

Output 1st Element added (the field1 text is still blank):

Onchange Function model.a
Onchange Function model.b
model.a(<openerp.models.NewId object at 0xad20f3ec>,)
False

Output 1st Element added (field1 = Test 1):

Onchange Function model.b
model.a(<openerp.models.NewId object at 0xad21658c>,)
Test 1
Onchange Function model.a
Test 1

Everything works like excpected so far. If i add another element (field1 = Test 2) the onchange function in Model b cant see the first entry:

Onchange Function model.b
model.a(<openerp.models.NewId object at 0xad2298ac>,)
Test 2
Onchange Function model.a
Test 1
Test 2

In the onchange function for model.a self.b_ids is:

b: model.b(<openerp.models.NewId object at 0xad1c73ec>, <openerp.models.NewId object at 0xad1c7b6c>)

in the onchange function for model.b self.a_id.b_ids is:

b: model.b(<openerp.models.NewId object at 0xad1d3b6c>,)

Is it possible to see all entries in the onchange function for field1 or see wich item was modified in the onchange function for a one2many field (including new lines without id)?  

0
Avatar
Annuleer
Axel Mendoza

What version of Odoo are you using?

Harald F
Auteur

I am using Verison 8.0 cloned today from GitHub Repository, created a new Database and wrote a Demo Module.

Avatar
Serpent Consulting Services Pvt. Ltd.
Beste antwoord

Hello Harald,

In parameter of "api.onchange", you should pass those fields which you want to access in your onchange method.

It should be as follow:

@api.onchange('field1', 'a_id')
def onchange(self):
print self.a_id
print self.a_id.b_ids

Hope this helps.



0
Avatar
Annuleer
Harald F
Auteur

I tried you suggestion and edited the original post. Still the same problem :(

Serpent Consulting Services Pvt. Ltd.

Make sure "a_id" has some value.

Harald F
Auteur

it has a value, the value(see the edited post) is: model.a(,)

Avatar
Rihene
Beste antwoord

Hi friend :)

 the onchange() decorator is used to provide new field values: as shown through this example:

@api.onchange('field1', 'field2') # if these fields are changed, call method

def check_change(self):

if self.field1 < self.field2:

self.field3 = True

May this help you.

Here are some useful links:

https://www.odoo.com/fr_FR/forum/help-1/question/odoo-8-api-onchange-example-how-to-copy-field-value-to-other-field-74838

https://www.odoo.com/documentation/8.0/reference/orm.html

Regards.


0
Avatar
Annuleer
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
Declare onchange method inside old API inherited model
orm odooV8
Avatar
Avatar
Avatar
2
apr. 16
7619
how to use ORM methods in odoo v8.0 with efficient? Opgelost
orm odooV8
Avatar
Avatar
Avatar
3
mrt. 15
5103
Define index in Many2one relationships by default throughout the project?
orm openerp odooV8
Avatar
0
nov. 16
4949
when to use name_get() and name_search method and When it get called!??! (V8)
orm methods odooV8
Avatar
Avatar
Avatar
4
jan. 16
11176
EAV product attributes
product orm odooV8
Avatar
2
mrt. 15
5679
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Word een Partner
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة 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 is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

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