首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:必须是str,而不是mail.mass_mailing.list

TypeError:必须是str,而不是mail.mass_mailing.list
EN

Stack Overflow用户
提问于 2020-05-22 12:15:52
回答 1查看 106关注 0票数 1

我正在制作一个模块上的Odoo发送短信从邮件列表。我已经运行了这段代码,但是我有一个错误。

代码语言:javascript
复制
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:\

File (x86)\odoo 第36行,在send_sms '&sms=‘+ self.messages_sms TypeError:必须是str,而不是mail.mass_mailing.list

EN

回答 1

Stack Overflow用户

发布于 2020-05-23 22:51:18

您得到了一个类型错误,因为您无法将str与mail.mass_mailing.list记录连接起来。

代码语言:javascript
复制
'&to=' + contact

尝试传递电话号码(或用于存储电话号码的任何字段):

代码语言:javascript
复制
'&to=' + contact.phone_number

您可以检查以下Twilio示例:

代码语言:javascript
复制
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()

  • 用于发送短消息的电话号码存储在当前用户
  • I继承的mail.mass_mailing.contact的相关合作伙伴中,以便为每个联系人

添加一个电话号码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61954847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档