在按钮单击时运行 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 视图/功能的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时运行功能

Swift 3:如何在表格视图的多个部分中使用操作按钮?

在屏幕下方加载时,UITableViewCell 按钮单击未注册

通过单击提交按钮在 Django 网站中运行 Python 脚本

单击按钮时中止正在运行的功能

单击提交时未调用Django视图功能