gpt4 book ai didi

python - 从 Django View 中的按钮获取点击事件

转载 作者:太空狗 更新时间:2023-10-30 00:07:05 25 4
gpt4 key购买 nike

我觉得标题很清楚。我想知道用户何时单击按钮以在我的 views.py 中的函数中运行一段代码。假设我有这个 html:

<div>
<input type="button" name="_mail" value="Enviar Mail">
</div>

如果用户点击它,我想运行这段代码:

send_templated_mail(template_name='receipt',
from_email='robot@server.com',
recipient_list=[request.user.email],
context=extra_context)

这就是我想要做的。

编辑:这是我的观点:

def verFactura(request, id_factura):
fact = Factura.objects.get(pk = id_factura)
cliente = Cliente.objects.get(factura = fact)
template = 'verfacturas.html'
iva = fact.importe_sin_iva * 0.21
total = fact.importe_sin_iva + iva

extra_context = dict()
extra_context['fact'] = fact
extra_context['cliente'] = cliente
extra_context['iva'] = iva
extra_context['total'] = total


if (here i want to catch the click event):
send_templated_mail(template_name='receipt',
from_email='imiguel@exisoft.com.ar',
recipient_list =['ignacio.miguel.a@gmail.com'],
context=extra_context)

return HttpResponseRedirect('../facturas')



return render(request,template, extra_context)

最佳答案

您应该在 views.py 中创建此函数,将其映射到您的 urls.py 中的 url,并使用 JavaScript(纯 JS 或使用 jQuery如下图):

JS(使用 jQuery):

$('#buttonId').click(function() {    
$.ajax({
url: your_url,
method: 'POST', // or another (GET), whatever you need
data: {
name: value, // data you need to pass to your function
click: true
}
success: function (data) {
// success callback
// you can process data returned by function from views.py
}
});
});

HTML:

<div>
<input type="button" id="buttonId" name="_mail" value="Enviar Mail">
</div>

python :

def verFactura(request, id_factura):

...

if request.POST.get('click', False): # check if called by click
# send mail etc.

...

请注意,如果您要使用 POST 方法,您应该注意 csrf(跨站点请求伪造)保护,如 HERE 所述

关于python - 从 Django View 中的按钮获取点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com