Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在单击按钮时调用Django函数?_Python_Django_Django Templates_Django Views - Fatal编程技术网

Python 如何在单击按钮时调用Django函数?

Python 如何在单击按钮时调用Django函数?,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,我正试图编写一个Django应用程序,但我一直在思考如何在单击按钮时调用视图函数 在我的模板中,我有一个链接按钮,如下所示,单击它会将您带到不同的网页: 单击按钮时,我还想调用Django视图函数(以及重新定向到目标网站)。view函数增加数据库中的值,该值存储按钮被单击的次数 列\u 3\u项目。项目的链接是指向外部网站(如www.google.com)的链接。现在,当点击该按钮时,它会打开一个新窗口,将您带到谷歌网站 我想做的是在单击按钮时调用Django view函数,该按钮在不刷新页

我正试图编写一个Django应用程序,但我一直在思考如何在单击按钮时调用视图函数

在我的模板中,我有一个链接按钮,如下所示,单击它会将您带到不同的网页:


单击按钮时,我还想调用Django视图函数(以及重新定向到目标网站)。view函数增加数据库中的值,该值存储按钮被单击的次数

列\u 3\u项目。项目的链接是指向外部网站(如www.google.com)的链接。现在,当点击该按钮时,它会打开一个新窗口,将您带到谷歌网站


我想做的是在单击按钮时调用Django view函数,该按钮在不刷新页面的情况下更新数据库。我怎样才能做到这一点呢?

这里是一个纯javascript的、最低限度的方法。我使用JQuery,但您可以使用任何库()


以下答案可能对问题的第一部分有所帮助:


我个人使用了两种可能的解决方案

1.不使用表单

 <button type="submit" value={{excel_path}} onclick="location.href='{% url 'downloadexcel' %}'" name='mybtn2'>Download Excel file</button>

我不明白你的问题。您的代码在任何
列\u 3\u项处调用view函数。在您的urlconf中映射到\u项的链接。添加到Daniel的注释:如果您需要单击->“实时”更新目录,而不刷新页面,您可能需要重写您的问题。如果您有一个指向该链接的视图,那么您已经拥有了所需的内容。很抱歉造成混淆。
列\u 3\u项目。项目的链接是指向外部网站的链接(例如:-www.google.com)。现在,当点击这个按钮时,会打开一个新窗口,进入谷歌网站。我想做的是在点击按钮时调用django view函数,该函数更新数据库而不刷新页面。你看过了吗?你可以用很多方法来实现,但是如果你不想重新加载/更改页面,我认为你必须依赖javascript(例如,对视图进行ajax调用,该视图使用用于打开新页面的相同标记更新计数器)。使用javascript是否存在问题?如果是否决,请在评论中解释原因,以便我可以改进我的回答。非常感谢。我使用了替代方法,它的效果与预期一样完美。使用Django的目的是避免使用其他语言。对于js,我很抱歉,但是如果您在单击按钮时使用Django,我们希望使用D触发jango,但不是js。请帮帮我!@KuneMohith然后请遵循另一种方法,它不需要javascript。除此之外,我不认为Django的目的是消除使用其他语言。你不能在客户端运行“Django”(python)。
<a target="_blank" 
    class="btn btn-info pull-right" 
    href="{% url YOUR_VIEW column_3_item.pk %}/?next={{column_3_item.link_for_item|urlencode:''}}">
    Check It Out
</a>
def YOUR_VIEW_DEF(request, pk):
    YOUR_OBJECT.objects.filter(pk=pk).update(views=F('views')+1)
    return HttpResponseRedirect(request.GET.get('next')))
 <button type="submit" value={{excel_path}} onclick="location.href='{% url 'downloadexcel' %}'" name='mybtn2'>Download Excel file</button>
<form action="{% url 'downloadexcel' %}" method="post">
{% csrf_token %}


 <button type="submit" name='mybtn2' value={{excel_path}}>Download results in Excel</button>
 </form>
path('excel/',views1.downloadexcel,name="downloadexcel"),