Возможно, вы хотите реализовать Ajax-вызов для подключения к серверу и записи клика. Например, используя jQuery, вы можете вызывать эту функцию JS при каждом нажатии:
function incrementPopCounter(pop_id) {
$.ajax({type: 'POST',
dataType: 'json',
url: '/pop/increment',
data: 'id=' + pop_id,
success: function(data) {
if(data.result == 'OK') {
// handle success
} else {
// handle failure
}
}
});
return false;
}
Вид Django для обработки этого может выглядеть следующим образом:
from django.utils import simplejson
...
def increment_pop(request):
if request.is_ajax():
if 'pop_id' in request.POST and request.POST['pop_id']:
try:
pop = Bookmark.objects.get(pk=request.POST['pop_id'])
except Bookmark.DoesNotExist:
return HttpResponse(simplejson.dumps({'result': 'No bookmark by that id found.'}),
mimetype='application/json')
pop.popularity = F('popularity') + 1
pop.save()
return HttpResponse(simplejson.dumps({'result': 'OK'}),
mimetype='application/json')
else:
return HttpResponse(simplejson.dumps({'result': 'Unable to identify the requested bookmark.'}),
mimetype='application/json')
else:
return HttpResponseBadRequest()