如何调用按钮Django的功能,点击
问题描述:
我试图写一个Django应用程序,我停留在如何我可以调用视图功能单击按钮时。如何调用按钮Django的功能,点击
在我的模板,我有一个链接按钮,点击后下面带你到不同的网页。
<a target="_blank" class="btn btn-info pull-right" href="{{ column_3_item.link_for_item }}">Check It Out</a>
当按钮被点击时,我想调用一个Django查看功能(以及重新指向目标网站)。查看功能是增加数据库中存储按钮被点击次数的值。
任何人都可以请帮助我,我可以如何实现这一点。
编辑: -
抱歉的混淆。 column_3_item.link_for_item是到外部网站的链接(例如: - www.google.com)。现在,当点击该按钮时,它会打开一个新窗口,该窗口用于Google网站。我想要做的就是调用一个django视图函数,当点击按钮更新数据库而不刷新页面时。
谢谢
答
这里是一个纯粹的JavaScript,简约的方法。我使用JQuery,但可以使用任何库(or even no libraries at all)。
<html>
<head>
<title>An example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function call_counter(url, pk) {
window.open(url);
$.get('YOUR_VIEW_HERE/'+pk+'/', function (data) {
alert("counter updated!");
});
}
</script>
</head>
<body>
<button onclick="call_counter('http://www.google.com', 12345);">
I update object 12345
</button>
<button onclick="call_counter('http://www.yahoo.com', 999);">
I update object 999
</button>
</body>
</html>
替代做法
不是把JavaScript代码,你可以改变你的链接是这样的:
<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>
,并在您views.py
:
def YOUR_VIEW_DEF(request, pk):
YOUR_OBJECT.objects.filter(pk=pk).update(views=F('views')+1)
return HttpResponseRedirect(request.GET.get('next')))
我不明白你的问题。你的代码在任何'column_3_item.link_for_item'被映射到你的urlconf的时候调用view函数。 – 2013-03-11 14:40:56
添加到丹尼尔的评论:如果你需要点击 - >“实时”更新couter,而不刷新页面,你可能需要重写你的问题。如果您有指向该链接的视图,您已经拥有了您需要的内容 – 2013-03-11 14:48:00
对此感到抱歉。 'column_3_item.link_for_item'是外部网站的链接(例如: - www.google.com)。现在,当点击该按钮时,它会打开一个新窗口,该窗口用于Google网站。我想要做的就是调用一个django视图函数,当点击按钮更新数据库而不刷新页面时。 – Dev 2013-03-11 14:49:11