Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
5636 มุมมอง

I have a email field  sender_address  computed like:

    sender_address = fields.Char(
string='Sender email address', readonly=True, store=True,
compute='_compute_sender_address', index=True)
@api.multi
@api.depends('sender')
def _compute_sender_address(self):
for email in self:
if email.sender:
matches = re.search(r'<(.*@.*)>', email.sender)
if matches:
email.sender_address = matches.group(1).lower()
else:
email.sender_address = email.sender.lower()
else:
email.sender_address = False

Then I would like to use this email address to get res.users id:

    # get sender user_id
sender_id = fields.Many2one(
string='Sender User ID', comodel_name='res.users', readonly=True, store=True,
compute='_compute_sender_id', index=True)
@api.multi
@api.depends('sender_address')
def _compute_sender_id(self):
for email in self:
if email.sender_address:
email.sender_id = self.env['res.users'].search([('email', 'ilike', 'email.sender_address')], limit=1)
else:
email.sender_id = False

 print send_address is correct, but no sender_id.

There's no error in log, please help me how to find problem.


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hi,

Just change this line

email.sender_id = self.env['res.users'].search
        ([('email', 'ilike', 'email.sender_address')], limit=1)
 

Thanks

อวตาร
ละทิ้ง
ผู้เขียน

Thanks @Niyas for your quick response. I tried it but not success.

But I change it to follow, it works now:

sender_mail = str(email.sender_address)

if email.sender_address:

email.sender_id = self.env['res.users'].search([('email', 'ilike', sender_mail)], limit=1)

So email.email.sender_address was not string and it was the problem right (y)

Related Posts ตอบกลับ มุมมอง กิจกรรม
2
มี.ค. 18
5458
1
มิ.ย. 25
16131
3
เม.ย. 25
6690
0
มี.ค. 25
1724
0
ม.ค. 25
3923