def rate(request, id, rating): item = get_object_or_404(Item, id=id) if not request.is_ajax(): return redirect(item.get_absolute_url()) qs = ItemVote.objects.filter(item=item, user=request.user, review=None) if qs.count(): vote = qs[0] vote.ratio = int(rating) else: vote = ItemVote(item=item, user=request.user, ratio=int(rating)) vote.ip_address = request.META.get("REMOTE_ADDR", None) vote.timestamp = datetime.datetime.now() vote.save() return JsonResponse(get_item_details(vote.item, request))