تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
1192 أدوات العرض
Hello, how could I create a button that creates a new record in another model containing data from my current model? from my python module


الصورة الرمزية
إهمال
أفضل إجابة

HI,
Utilize odoo create orm method:  Odoo Create ORM Method
Thanks

الصورة الرمزية
إهمال
أفضل إجابة
This method will create a new record in the target model and populate its fields with data from the current model.

from odoo import models, fields

class YourModel(models.Model):
_name = 'your.model'
_description = 'Your Model'

name = fields.Char(string='Name')
description = fields.Text(string='Description')
related_field = fields.Many2one('other.model', string='Related Model')

def action_create_new_record(self):
for record in self:
# Create a new record in the other model
self.env['other.model'].create({
'name': record.name, # Pass data from the current model
'description': record.description,
'related_field': record.id,
})



Add a button to your form view in the XML file. Use the type="object" attribute to call a Python method when the button is clicked.


<record id="view_your_model_form" model="ir.ui.view">

    <field name="name">your.model.form</field>

    <field name="model">your.model</field>

    <field name="arch" type="xml">

        <form string="Your Model">

            <header>

                <button name="action_create_new_record" type="object" string="Create Record" class="oe_highlight"/>

            </header>

            <sheet>

                <!-- Your form fields go here -->

            </sheet>

        </form>

    </field>

</record>



When you click the "Create Record" button on the form view of your current model, a new record will be created in the target model using the data from the current record.


Best Regards,
NIZAMUDHEEN MJ
Accurates

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
0
أكتوبر 19
4350
7
يوليو 19
41866
3
مايو 19
10235
2
أغسطس 18
11700
1
مارس 15
4207