Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
4113 Переглядів

Hi, everyone I'm trying to make a search wizard which will find records in res.partner based on our given condition. For example, I'm giving a value in CNIC field to search if the record exists on a button click it works correctly and find the existing record (if any) but it does not return the form of existing record it opens the new form always. Can anyone help me to return an existing form with all the values? 

Here's my function:

def existing_record(self):
search = []
if self.cnic:
search.append(('cnic', '=', self.cnic))
else:
raise ValidationError(_("Please Enter CNIC."))

if search:
partner = self.env['res.partner'].search(search)
if not partner:
raise ValidationError(_("This member is not yet created. So, you can not see his details."))

return {
'name': 'Member Form',
'view_mode': 'form',
'res_model': 'res.partner',
'view_id': self.env.ref('real_estate.view_partner_form').id,
'domain': [('cnic','=',self.cnic)],
'context': {
"default_is_member": True,
},
'type': 'ir.actions.act_window',
Аватар
Відмінити
Найкраща відповідь

Hello Syed,

I believe the issue is that you haven't given the window action a "res_id". This value specifies what record needs to be loaded into the view. Source

The answer which Aktiv Software has provided suggests that you have forgotten to place an ending curly brace at the end of your window action, while not wrong I don't believe this to be your issue. As this would usually bring up a server error, I would imagine you just didn't copy the end into your example. 

If you change the window action to:

return {
'name': 'Member Form',
'view_mode': 'tree,form',
'res_model': 'res.partner',
'res_id': partner.id,
'view_id': self.env.ref('real_estate.view_partner_form').id,
'domain': [('id','in', partner.ids)],
'context': {
"default_is_member": True,
},
'type': 'ir.actions.act_window'
}
It should work, however, you would need to have a check before, such as:

if partner:
    # place window action
else:
    # do something if you haven't found a partner
To make sure the partner exists. 

I hope this helps,

Thanks, 

Аватар
Відмінити
Автор

thanks man it helped.

Найкраща відповідь

Hello Syed Hamza,

please try for this domain

return {

'name': 'Member Form',

'view_mode': 'tree,form',

'res_model': 'res.partner',

'view_id': self.env.ref('real_estate.view_partner_form').id,

'domain': [('id','in', partner.ids)],

'context': {

"default_is_member": True,

},

'type': 'ir.actions.act_window'

}

Thank you!

Regards,




Email:      odoo@aktivsoftware.com  

Skype: kalpeshmaheshwari

    

Аватар
Відмінити
Автор

thanks for your response but the issue was coming bcz i was missing 'res_id'

Related Posts Відповіді Переглядів Дія
1
квіт. 21
2682
0
квіт. 17
4420
2
груд. 19
15401
0
квіт. 16
5080
0
бер. 15
5649