<p>这是一个纯javascript的极简方法。我使用JQuery,但您可以使用任何库(<a href="http://net.tutsplus.com/articles/news/how-to-make-ajax-requests-with-raw-javascript/" rel="noreferrer">or even no libraries at all</a>)。</p>
<pre><code><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>
</code></pre>
<hr/>
<p><strong>替代方法</strong></p>
<p>您可以通过以下方式更改链接,而不是放置JavaScript代码:</p>
<pre><code><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>
</code></pre>
<p>在你的<code>views.py</code>中:</p>
<pre><code>def YOUR_VIEW_DEF(request, pk):
YOUR_OBJECT.objects.filter(pk=pk).update(views=F('views')+1)
return HttpResponseRedirect(request.GET.get('next')))
</code></pre>