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