首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >收到的电子邮件正文中出现方法调用错误

收到的电子邮件正文中出现方法调用错误
EN

Stack Overflow用户
提问于 2018-12-11 22:28:35
回答 2查看 30关注 0票数 0

我正在通过系统自动发送一封电子邮件,当它到达电子邮件正文时,所有的方法都在那里,除了str(self.total_mes_pagar)方法之外,它出现在下面的一行中:“<bound method Mensalista.total_mes_pagar of <Mensalista">我是python的新手,非常感谢大家对我的帮助和耐心,因为我几乎要为这个问题发疯了。

models.py

class Veiculo(models.Model):
    marca = models.ForeignKey(Marca, on_delete=models.CASCADE, blank=False)
    modelo = models.CharField(max_length=20, blank=False)
    ano = models.CharField(max_length=7, default="2018")
    placa = models.CharField(max_length=7)
    proprietario = models.ForeignKey(
        Pessoa, on_delete=models.CASCADE, blank=False, )
    cor = models.CharField(max_length=15, blank=False)

    def __str__(self):
         return str(self.modelo) + ' - ' + str(self.placa)

class Mensalista(models.Model):
    veiculo = models.ForeignKey(Veiculo, on_delete=models.CASCADE, 
        blank=False)
    inicio = models.DateField(("Início"), default=datetime.date.today)
    validade = models.DateField(("Validade"), blank=False, )
    valor_mes = models.DecimalField(
        max_digits=6, decimal_places=2, blank=False)
    pago = models.CharField(max_length=15, choices=PAGO_CHOICES)


@property
    def email(self):
        return self.pessoa.email

    def mensal(self):
        return math.ceil((self.validade - self.inicio).total_seconds() / 
            86400)

    def total_mes(self):
        return math.ceil(self.mensal() // 30)

    def total_mes_pagar(self):
        return self.valor_mes * self.total_mes()

    def __str__(self):
        return str(self.veiculo) + ' - ' + str(self.inicio)

    def send_email(self):
        if self.pago == 'Sim':
            assunto = 'Comprovante pagamento Estacione Aqui 24 Horas'
            mensagem = 'Obrigado por utilizar o Estacione Aqui 24 horas. 
                Ativação do estacionamento dia :  ' + str(self.inicio) + 
                    'Com validade até o dia   ' + str(
                         self.validade) + '  Confirmamos o pagamento do 
                              valor de: ' + str(self.total_mes_pagar) + '   
                                  E aguardamos seu retorno '
            recipient_list = [self.email]

            send_mail(
                assunto,
                mensagem,
                'estacioneaqui24@gmail.com',
                [recipient_list],
                fail_silently=False,
            )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-11 22:53:49

看起来你没有调用你的方法。

str(self.total_mes_pagar())
票数 2
EN

Stack Overflow用户

发布于 2018-12-12 04:14:58

valor_mes是一个字段。total_mes_pagar是一种方法。方法需要在最后使用()来调用。

如果您使用的是模板,则不需要直接调用它。在本例中,您将在send_email方法中构建文本。在这种情况下,需要明确地调用它,如下所示:

                                   E aguardamos seu retorno '             recipient\_list = [self.email]

```javascript
    send_mail(
        assunto,
        mensagem,
        'estacioneaqui24@gmail.com',
        [recipient_list],
        fail_silently=False,
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53726252

复制
相关文章

相似问题

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