Python TypeError:必须是str,而不是mail.mass\u mailing.list

Python TypeError:必须是str,而不是mail.mass\u mailing.list,python,xml,odoo,Python,Xml,Odoo,我正在制作一个模块的奥多发送短信从邮件列表。 我已运行此代码,但有一个错误 contact_list_ids = fields.Many2many('mail.mass_mailing.list', 'phone_number', string='Liste de diffusion') messages_sms = fields.Text(string="message", required=True) # send SMS with GET method @api.multi def s

我正在制作一个模块的奥多发送短信从邮件列表。 我已运行此代码,但有一个错误

contact_list_ids = fields.Many2many('mail.mass_mailing.list', 'phone_number', string='Liste de diffusion')

messages_sms = fields.Text(string="message", required=True)

# send SMS with GET method
@api.multi
def send_sms(self):
    for list in self.contact_list_ids:
        for contact in list:
            final_url = (
                URL +
                '&to=' +contact +
                '&sms=' + self.messages_sms
                 )
            r = requests.get(final_url)
            if not r:
                return ERROR_API
            return r.text
错误:

文件“c:\program files(x86)\odoo 12.0\server\addons\KeoMarketing\models\messages\u sms.py”,第36行,发送\u sms “&sms=”+self.messages\u sms TypeError:必须是str,而不是mail.mass\u mailing.list


由于无法将str与
mail.mass\u mailing.list
记录连接,因此出现类型错误

'&to=' + contact
尝试传递电话号码(或用于存储电话号码的任何字段):

您可以检查以下
Twilio
示例:

from twilio.rest import Client


class CustomClass(models.Model):   

    contact_list_ids = fields.Many2many('mail.mass_mailing.list', 'phone_number', string='Liste de diffusion')

    messages_sms = fields.Text(string="message", required=True)

    @api.multi
    def send_sms(self):
        self.ensure_one()
        account_sid = ''
        auth_token = ''
        client = Client(account_sid, auth_token)
        for list in self.contact_list_ids:
            for contact in list.contact_ids:
                client.messages \
                    .create(
                    body=self.messages_sms,
                    from_=self.env.user.partner_id.mobile,
                    status_callback='http://postb.in/1234abcd',
                    to=contact.phone_number
                )


class MailMassMailingContact(models.Model):
    _inherit = 'mail.mass_mailing.contact'

    phone_number = fields.Char()
  • 用于发送SMS的电话号码存储在当前用户的相关合作伙伴中

  • 我继承了
    mail.mass\u mailing.contact
    为每个联系人添加电话号码


由于无法将str与
邮件.mass\u mailing.list
记录连接,因此出现类型错误

'&to=' + contact
尝试传递电话号码(或用于存储电话号码的任何字段):

您可以检查以下
Twilio
示例:

from twilio.rest import Client


class CustomClass(models.Model):   

    contact_list_ids = fields.Many2many('mail.mass_mailing.list', 'phone_number', string='Liste de diffusion')

    messages_sms = fields.Text(string="message", required=True)

    @api.multi
    def send_sms(self):
        self.ensure_one()
        account_sid = ''
        auth_token = ''
        client = Client(account_sid, auth_token)
        for list in self.contact_list_ids:
            for contact in list.contact_ids:
                client.messages \
                    .create(
                    body=self.messages_sms,
                    from_=self.env.user.partner_id.mobile,
                    status_callback='http://postb.in/1234abcd',
                    to=contact.phone_number
                )


class MailMassMailingContact(models.Model):
    _inherit = 'mail.mass_mailing.contact'

    phone_number = fields.Char()
  • 用于发送SMS的电话号码存储在当前用户的相关合作伙伴中

  • 我继承了
    mail.mass\u mailing.contact
    为每个联系人添加电话号码


您在哪一行收到此错误?在这一行:'&sms='+self.messages\u sms此错误表示self.messages\u sms是一个列表,而不是单个str值。请尝试打印(键入(self.messages\u sms))以查看是否正确。确保self.messages\u sms是str而不是列表…是。我认为导致此错误的原因是我的多个字段在哪一行出现此错误?在这一行:'&sms='+self.messages\u sms此错误表示self.messages\u sms是一个列表,而不是单个str值。请尝试打印(键入(self.messages\u sms))以查看是否正确。确保self.messages\u sms是str而不是列表…是。我认为造成错误的原因是我的许多字段