Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render, redirect, HttpResponseRedirect
- from .models import Score, Vote
- from content.models import Post
- from django.core.exceptions import ObjectDoesNotExist
- from django.http import JsonResponse
- def score_view(request, pk, grade):
- ip = request.META.get('REMOTE_ADDR', '') or request.META.get('HTTP_X_FORWARDED_FOR', '')
- score_object = Score.objects.get(pk=pk)
- if request.user.is_authenticated():
- user = request.user
- username = user.username
- else:
- user = None
- username = 'Anonymous'
- if request.session is None:
- request.session.save()
- try:
- vote = Vote.objects.get(
- score_object=score_object,
- session_key=request.session.session_key,
- voted_user=user,
- ip_address=ip
- )
- vote.change_choice(grade)
- except ObjectDoesNotExist:
- vote = Vote.objects.create(
- score_object=score_object,
- username=username,
- voted_user=user,
- vote_choice=grade,
- ip_address=ip,
- session_key=request.session.session_key,
- )
- vote.save()
- score_object.calculate_score()
- if request.is_ajax():
- if grade == '+':
- return JsonResponse({'data': str(score_object.positive_votes)})
- return JsonResponse({'data': str(score_object.negative_votes)})
- else:
- return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Advertisement
Add Comment
Please, Sign In to add comment