Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
4110 Lượt xem

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',
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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, 

Ảnh đại diện
Huỷ bỏ
Tác giả

thanks man it helped.

Câu trả lời hay nhất

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

    

Ảnh đại diện
Huỷ bỏ
Tác giả

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

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 4 21
2680
0
thg 4 17
4413
2
thg 12 19
15395
0
thg 4 16
5060
0
thg 3 15
5644