将模板中的数据保存到django中的文件中并发送电子邮件

时间:2014-07-19 22:37:12

标签: python django email

我在django中有一个模板,它在一个表格中显示一些信息,这些信息的格式为统一价格,描述,总价格等不同的字段...我想要,例如,显示一个按钮,将该表保存到文件中,然后发送附有该文件的电子邮件。我在标题中写了Django,因为那就是我正在使用的东西。这是正确的方法吗?将“表”保存到文件然后发送电子邮件?或者有人有另一个想法来完成同样的事情?

编辑:这是我在模板中的表格,它会进行求和和加法,并用这些结果完成一些方框:

<div class="row">
    <div class="col-xs-12">
        <div class="box">
            <div id="">

                <p id="address">
                    {{fact.nombre_cliente}}
                </p>
                <p id= "numero">
                    {{fact.numero_De_Factura}}
                </p>
                <div id="logo">

                  <img id="image" src="{% static 'img/Home/Logo-Exisoft.png' %}" alt="logo" />

                </div>

            </div>

        <div style="clear:both"></div>

        <div id="customer">
            <div id="datos">
                <p id = "direccion">
                    {{cliente.Direccion}}
                </p>
                <br>
                <p id = "direccion">
                    {{fact.RI}}
                </p>
        </div>
        <table id="meta">
            <tr>
                <td class="meta-head">Fecha</td>
                <td><textarea id="date">{{fact.fecha_factura}}</textarea></td>
            </tr>
            <tr>
                <td class="meta-head">CUIT</td>
                <td><div class="due">{{cliente.CUIT}}</div></td>
            </tr>
        </table>

    </div>

    <table id="items">
        <tr>
            <th class="tipo">Tipo de Factura</th>
            <th class="descripcion">Descripcion</th>
            <th>Precio</th>
        </tr>
        <tr class="item-row">
            <td><div><textarea>{{fact.tipo_Factura}}</textarea></div></td>
            <td class="description"><textarea>{{fact.descripcion}}</textarea></td>
            <td><span class="price">$ {{fact.importe_sin_iva}}</span></td>
        </tr>
    </table>
    <table id="totales">
        <tr>
            <td class="total-line">Subtotal</td>
            <td class="total-value"><div id="subtotal">$ {{fact.importe_sin_iva}}</div></td>
        </tr>
        <tr>
            <td class="total-line">Iva</td>
            <td class="total-value"><div id="total">$ {{iva}}</div></td>
        </tr>
        <tr>
            <td  class="total-line">Precio Pagado</td>
            <td class="total-value"><textarea id="paid">$ {{total}}</textarea></td>
        </tr>
        <tr>
            <td  class="total-line balance">Balance Due</td>
            <td class="total-value balance"><div class="due">$875.00</div></td>
        </tr>
    </table>

            <div id="terms"></div>        
        </div><!-- /.box-body -->
    </div><!-- /.box -->
</div>

这是我需要通过电子邮件发送的内容。我还没有尝试任何东西,因为我不知道最好的方法是什么。我应该将此表保存在文件中然后打印发送该文件吗?有没有办法在电子邮件中捕获漏洞并将其过去并发送而不保存?

非常感谢。

1 个答案:

答案 0 :(得分:0)

应该没有理由将要附加的文件存储为服务器上的实际文件。看看https://docs.djangoproject.com/en/dev/topics/email/

似乎EmailMessage.attachments根据(文件名,内容,mimetype)三元组定义要附加的文件。使用EmailMessage.attach()附加呈现为字符串的模板(以及正确的文件名和mime类型),请参阅render_to_string()。然后使用EmailMessage.send()发送电子邮件。

您应该在视图中执行此操作。如果使用基于模型的视图,比如说FormView,则应该使用form_valid()方法。另请参阅http://ccbv.co.uk/projects/Django/1.6/django.views.generic.edit/FormView/