This question has been flagged
1 Reply
2998 Views

I am trying to generate a "Create" button in the standard form of partners (res.partner). But I want that if click it, create a object from other model. Let's suppose that I have created a new model called my.model. I want to generate a button in the standard form of partners which opens a standard form to create an object from the model my.model. How can I do this?

Avatar
Discard
Best Answer

Assuming you already created my.model, and defined views for that model,
since your button is visible on form  res.partner , you need to define a method in  res.partner class

in that method you will first call create on my.model like:
mymodel = self.pool.get('my.model')
created_id = mymodel.create(cr, uid, vals ) 
#vals is some values that will appear on created record

and after that you can return the desired view like:

view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'your_module', 'view_external_id')
view_id = view_ref and view_ref[1] or False
            return {
                'type': 'ir.actions.act_window',
                'name': 'Some name',
                'res_model': 'my.model',
                'res_id': created_id,
                'view_type': 'form',
                'view_mode': 'form',
                'view_id': view_id,
                'target': 'new',
                'nodestroy': True,
                }
 

 

hope it helps.. 
may the source be with you!

Avatar
Discard
Author

Of course it helped me! Thank you so much!