예제 #1
0
파일: views.py 프로젝트: dsauerbrun/blog
def add_comment(request, pk):
	p = request.POST
	
	if p.has_key("text") and p["text"]:
		author = "Anonymous"
		if p["user"]: author = p["user"]
		comment = Comment(belongs_to_blog=Blog.objects.get(pk=pk))
		cf = CommentForm(p, instance=comment)
		cf.fields["user"].required = False

		#comment = cf.save(commit=False)
		comment.text = p["text"]
		comment.user = author
		comment.save()
	return HttpResponseRedirect(reverse("blog_index"))
예제 #2
0
def comment(request):
	if request.method == 'POST':
		result = {'error': None, 'comment': [], 'nextup': False, 'commented': False}
		post_pk = request.POST['pk']
		body = request.POST.get('body', '')[:140]
		commentstartfrom = int(request.POST['commentstartfrom'])

		# get post
		try:
			post = Post.objects.get(pk=post_pk)
		except Post.DoesNotExist:
			result['error']='PostNotFound'
			return JsonResponse(result)


		if len(body) != 0: # adding comment
			if(request.user.is_authenticated()):
				try:
					member = Member.objects.get(user=request.user)
				except Member.DoesNotExist:
					result['error']='UserNotFound'
					return JsonResponse(result)
			else:
				result['error']='UserNotAuthenticated'
				return JsonResponse(result)

			comment = Comment()
			comment.author = member
			comment.post = post
			comment.text = body
			comment.save()
			result['commented'] = True

		# - return comment
		for comment in post.comment.all()[::-1][commentstartfrom:commentstartfrom+3]:
			imageurl = comment.author.picture.url
			author = comment.author.name
			text = comment.text
			commentdata = {'imageurl': imageurl, 'author': author, 'text': text}
			
			result['comment'].append(commentdata)
			
		result['comment_num'] = len(post.comment.all())
		if commentstartfrom+3 < result['comment_num']:
			result['nextup'] = True

		return JsonResponse(result)
예제 #3
0
def handle_comments(request, post_id):
    if request.method == 'GET':
        try:
            post = Post.objects.get(id=post_id)
            comments = Comment.objects.filter(post=post)
            count = len(comments)
            serializer = CommentListSerializer(comments,
                                               context={
                                                   'query': 'comments',
                                                   'count': count
                                               })
            return Response(serializer.data)
        except Exception as e:
            print(e)
        return HttpResponseNotFound()

    elif request.method == 'POST':
        try:
            post = Post.objects.get(id=post_id)
            form = CommentForm(request.POST or None)
            context = {
                "query": "addComment",
                "success": None,
                "message": None,
            }
            if form.is_valid():
                if checkVisibility(request.user, post):
                    form_data = form.cleaned_data
                    comment = Comment(post=post,
                                      author=request.user,
                                      comment=form_data['comment'])
                    comment.save()
                    context['success'] = True
                    context['message'] = "Comment Added"
                    return Response(context, status=200)
                else:
                    print(form.errors)
                    context['success'] = False
                    context['message'] = "Comment not Allowed"
                    return Response(context, status=403)
        except Exception as e:
            print(e)
    return HttpResponseBadRequest()