Приветствую. Отправляю по клику ajax:
$('.plus{{ server.id }}').on('click', function() {
var data_plus = {
id: {{server.id}},
move: '+'
}
$.ajax({
url: '/add_voice/',
dataType: 'json',
data: data_plus,
success: function(response) {
$('.voices{{ server.id }} b').html(response['voices_count'])
}
});
})
$('.minus{{ server.id }}').on('click', function() {
var data_minus = {
id: {{server.id}},
move: '-'
}
$.ajax({
url: '/add_voice/',
dataType: 'json',
data: data_minus,
success: function(response) {
$('.voices{{ server.id }} b').html(response['voices_count'])
}
});
})
На views обрабатываю:
def add_voice(request):
id = request.GET.get('id')
move = request.GET.get('move')
server = Server.objects.get(id=id)
ip = get_client_ip(request)
if move == '+':
server.voices += 1
server.save()
if move == '-':
server.voices -= 1
server.save()
voices_count = server.voices
response_data = {
'voices_count': voices_count
}
return JsonResponse(response_data)
Проблема в том, что один пользователь может добавлять 10000 лайков к одной модели. Я мог бы ограничить это всё, но только через обязательную авторизацию. Нужно сделать такое ограничение: не авторизированный пользователь может добавлять лайк 1 раз в 24 часа. Как это сделать? Привязаться к ip? Или как? Может что-то с сессиями?