在Django中使用send_mail:无法在函数的发票中显示数据

She*_*009 2 django sendmail django-models django-views

另一个Django send_mail问题.似乎我在电子邮件中显示数据时遇到问题,这些数据将表单与功能分开.似乎这是一个可变的问题.

编辑:我设法让客户名出现!现在如何用发票来做同样的事情.假设我想显示日期,invoice_no,work_orders和contract_info?

    #models.py
    class Invoice(models.Model):
    client = models.ForeignKey(Client)
    date = models.DateField()
    invoice_no = models.CharField(max_length=16)
    work_orders = models.ManyToManyField(Work_Order)
    contract_info = models.ForeignKey(Contract_Info)

    def __unicode__(self):
                return self.invoice_no

    #views.py
    @login_required
    def invoice_mail(request, id=1):
        invoices_list = Invoice.objects.filter(pk=id)
        client = invoices_list[0].client
        t = loader.get_template('registration/email.txt')
        c = Context({
        'client': client.company,
        })
        send_mail('Welcome to My Project', t.render(c), 'jess@example.com', ['mark@example.com'], fail_silently=False)
        return render_to_response('email.html', locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

这是我的email.txt

Dear {{client}},
Run Code Online (Sandbox Code Playgroud)

当我将它发送到我的电子邮件帐户时,我会收到此信息

亲爱的Currys,

Dan*_*man 5

这与send_mail无关.您将此信息发送到模板上下文"

c = Context({
    'invoice': 'invoice.client',
    })
Run Code Online (Sandbox Code Playgroud)

这里'invoice'是一个包含文本'invoice.client'的字符串.您需要发送一个实际的对象.但是您的命名不清楚,所以我无法判断您是要发送Invoice对象还是相关客户端.