This question has been flagged
2 Replies
3039 Views

Hello everyone !


I wanna load default data into my database with my module.


The issue is:


// Family geek model

class FamilyGeek(model.Model):

 _name     = 'family.geek'

 name      = fields.Char(..........)


// data/family_geek_data.xml

<record model="family.geek" id="fg1">

  <field name="id">1</field>

  <field name="name">Geek Family</field>

</record>


// Family house model

class FamilyHouse(model.Model):

  _name         = 'family.house'

  name          = fields.Char(..........)

  family_geek_ids    = fields.One2many('family.geek',ondelete='SET NULL | CASCADE or More')


// data/family_house_data.xml

<record model="family.house" id="fh1">

  <field name="id">1</field>

  <field name="name">House's in Breizh</field>

  <field name="family_geek_ids">1</field>

</record>

<record model="family.house" id="fh2">

  <field name="id">2</field>

  <field name="name">House's in French Guyana</field>

  <field name="family_geek_ids">1</field>

</record>

<record model="family.house" id="fh3">

  <field name="id">3</field>

  <field name="name">House's in Mayotte</field>

  <field name="family_geek_ids">1</field>

</record>


Helps please !!!


Avatar
Discard
Best Answer

Hi Smael,


You should link to the family_geek_ids with an eval that has the id set of the record on the external table, not just a number. An example:

<record model="family.geek" id="fg1">
  <field name="name">Geek Family</field>
</record>

<record model="family.house" id="fh3"> <field name="name">House's in Mayotte</field> <field name="family_geek_ids" eval="[(6, 0, [ref('fg1')])]"/> </record>

Thanks to the eval Odoo knows that you want to link the first record from the table 'family.geek' to this record from the 'family.house' table.


P.S: You shouldn't use/set the field 'id' in the records. Your database will fill up the ID's automatically and by adding them manually you're only risking getting ORM issues.

Regards,
Yenthe

Avatar
Discard
Author Best Answer

Hi Yenthe,

I tried it and it works successfully.

Thanks !

Smael

Avatar
Discard