在按钮单击时运行 django 视图/功能
Posted
技术标签:
【中文标题】在按钮单击时运行 django 视图/功能【英文标题】:Running django view/function on button click 【发布时间】:2021-10-03 13:43:32 【问题描述】:我有以下按钮:<a class="btn btn-success">Accept</a>
。就像this之前的堆栈溢出问题一样,我想在单击按钮后调用我的视图,但我似乎无法让它工作。
我尝试过:使用 AJAX,将按钮视为表单,请求发布数据,但这似乎不起作用。
我怎样才能使它在我的按钮被点击时调用波纹管视图?
def acceptdonation(request, pk):
Donation.objects.filter(pk=pk).update(views=F('views')+1)
return HttpResponseRedirect(request.GET.get('next')))
【问题讨论】:
【参考方案1】:在您想要的视图的模板链接中:
<a href="% url 'myapp:myview' %" class="btn btn-success">Accept</a>
当然,如果需要,您也可以将pk
或其他数据传递给 url。
【讨论】:
【参考方案2】:如果您想将表单发布到视图中,可以使用:
function submitToView()
var formData = new FormData();
formData.append('some_variable', 'abc');
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function ()
if (xhr.readyState == XMLHttpRequest.DONE)
abc = JSON.parse(xhr.responseText);
xhr.open('POST', '/my_view/', true);
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.send(formData);
请考虑使用 html 和 urls.py 添加您的 javascript
【讨论】:
感谢您的详细回复,但我想知道是否可以在不使用 javascript 的情况下做到这一点?在我包含的示例堆栈溢出问题中,有人能够使用默认的 django url 当然,分享你的代码,会很方便以上是关于在按钮单击时运行 django 视图/功能的主要内容,如果未能解决你的问题,请参考以下文章
在屏幕下方加载时,UITableViewCell 按钮单击未注册