Guest User

Untitled

a guest
Nov 19th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.51 KB | None | 0 0
  1. from django.shortcuts import render, redirect, HttpResponseRedirect
  2. from .models import Score, Vote
  3. from content.models import Post
  4. from django.core.exceptions import ObjectDoesNotExist
  5. from django.http import JsonResponse
  6.  
  7.  
  8. def score_view(request, pk, grade):
  9.     ip = request.META.get('REMOTE_ADDR', '') or request.META.get('HTTP_X_FORWARDED_FOR', '')
  10.  
  11.     score_object = Score.objects.get(pk=pk)
  12.     if request.user.is_authenticated():
  13.         user = request.user
  14.         username = user.username
  15.     else:
  16.         user = None
  17.         username = 'Anonymous'
  18.  
  19.     if request.session is None:
  20.         request.session.save()
  21.  
  22.     try:
  23.         vote = Vote.objects.get(
  24.             score_object=score_object,
  25.             session_key=request.session.session_key,
  26.             voted_user=user,
  27.             ip_address=ip
  28.             )
  29.         vote.change_choice(grade)
  30.  
  31.     except ObjectDoesNotExist:
  32.         vote = Vote.objects.create(
  33.             score_object=score_object,
  34.             username=username,
  35.             voted_user=user,
  36.             vote_choice=grade,
  37.             ip_address=ip,
  38.             session_key=request.session.session_key,
  39.             )
  40.  
  41.         vote.save()
  42.  
  43.     score_object.calculate_score()
  44.    
  45.     if request.is_ajax():
  46.         if grade == '+':
  47.             return JsonResponse({'data': str(score_object.positive_votes)})
  48.         return JsonResponse({'data': str(score_object.negative_votes)})
  49.     else:
  50.         return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Advertisement
Add Comment
Please, Sign In to add comment