def reply_insert(request): id = request.POST['idx'] dto = Comment(board_idx=id, writer=request.POST['writer'], content=request.POST['content']) dto.save() return HttpResponseRedirect('detail?idx=' + id)
def comment(request, post_id): c = Comment(post_id=post_id, txt=request.POST["comment_text"], published_at=datetime.datetime.now() ) c.save() return HttpResponseRedirect("/post/" + post_id)
def board_send_comment(request, post_id): chat = Chat.objects.all() user_name = request.session['userss'] user_id = request.session['user_id'] print("Comment 들어왔다") post = get_object_or_404(Post, pk=post_id) comment = Comment(comment=post) # comment = Comment(pk=post_id) comment_list = Comment.objects.filter(comment=post_id).order_by('-created_date') # print(comment_list) post_form = PostForm(request.POST, instance=post) if request.method == "POST": print("post 들어왔다 ") form = CommentForm(request.POST, instance=comment) if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.author = user_name comment.save() page = request.GET.get('page', '1') paginator = Paginator(comment_list, 5) print("page") commentpage = paginator.get_page(page) context = {'comment_list': comment_list,'post_form': post_form, 'post': post, 'comment_form': form, 'page': page, 'commentpage': commentpage, 'userss': user_name, 'user_id': user_id} return render(request, 'bbs_detail.html',context) else: form = CommentForm(request.GET) page = request.GET.get('page','1') paginator = Paginator(comment_list, 5) commentpage = paginator.get_page(page) context = {'comment_list': comment_list,'post_form': post_form, 'post': post, 'comment_form': form, 'page': page, 'commentpage': commentpage, 'userss': user_name, 'user_id': user_id, 'chat': chat} if form.is_valid(): comment = form.save(commit=False) comment.post = post comment.author = user_name comment.save() page = request.GET.get('page', '1') paginator = Paginator(comment_list, 5) commentpage = paginator.get_page(page) context = {'comment_list': comment_list,'post_form': post_form, 'post': post, 'comment_form': form, 'page': page, 'commentpage': commentpage, 'userss': user_name, 'user_id': user_id, 'chat': chat} return render(request, 'bbs_detail.html', context) print("pComment 그린다 ") return render(request, 'bbs_detail.html', context)
def reply_insert(request): id = request.POST["idx"] #게시물 번호 #댓글 객체 생성 dto = Comment(board_idx=id,\ writer=request.POST["writer"],\ content=request.POST["content"]) #insert query 실행 dto.save() # detail?idx=글번호 페이지로 이동 return HttpResponseRedirect("detail?idx=" + id)
def reply_insert(request): # 게시물 번호 id = request.POST["idx"] # 댓글 객체 생성 vo = Comment(board_idx=id, writer=request.POST["writer"], content=request.POST["content"]) # insert query가 호출됨 vo.save() # 상세화면으로 다시 돌아감 return HttpResponseRedirect("detail?idx=" + id)
def write_comment(request): board_id = request.GET.get('board_id', ) input_comment = request.GET.get('comment', ) user = request.user.pk comment = Comment() comment.board_id = Board(board_id) comment.writer = User(user) comment.content = input_comment comment.status = 'y' try: comment.save() result = json.dumps([ {'result': 'seccess'} ]) except Exception as e: print(e) result = json.dumps([ {'result':'fail'} ]) return HttpResponse(result, content_type="application/json:charset=UTF-8")
def reply_insert(request): id = request.POST.get('idx') row = Comment(board_idx=id, writer=request.POST.get('writer'), content=request.POST.get('content')) print(8) return HttpResponseRedirect('detail?idx=' + id)
def comment(request, commentid): # 인증 authuser = request.session.get('authuser') if authuser is None: return HttpResponseRedirect('/board') # 댓글 입력 if commentid is None: comment = Comment() comment.content = request.GET['content'] comment.board_id = request.GET['boardid'] comment.user_id = authuser['id'] comment.save() # 댓글 삭제 else: comment = Comment.objects.get(id=commentid) comment.delete() # 댓글 리스트 추출 commentlist = Comment.objects.all().filter(board_id=request.GET['boardid']) id = [] content = [] regdate = [] user = [] for c in commentlist: id.append(c.id) content.append(c.content) regdate.append(c.regdate) user.append(c.user.name) # json 형태인 dict 자료형으로 리턴 result = { 'result': 'success', 'id': id, 'content': content, 'regdate': regdate, 'user': user, 'nowuser': request.session['authuser']['name'] } return JsonResponse(result) # get, post action 동시 처리 # def test(request, id): # if id is None: # print("get") # else: # print("post") # pass
def race_detail(request, id): race = Race.objects.get(id=id) form = CommentForm() if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): comment = Comment(commenter=request.user, race=race, text=form.data["text"], type=form.data["type"]) comment.save() comments = Comment.objects.filter(race=race) context = { "race": race, "comments": comments, "form": form, } return render(request, "board/race_detail.html", context)
def create_comment(request, article_id): article = get_object_or_404(Article, id=article_id) comment = Comment() comment.content = request.POST.get('content') comment.article = article comment.save() return redirect('board:article_detail', article.id)
def create_comment(request, article_id): # 존재하지 않는 article number에 대한 제어 article = get_object_or_404(Article, id=article_id) if request.method == 'POST': comment = Comment() comment.content = request.POST.get('content') comment.article_id = article.id comment.save() # 잘못된 (POST가 아닌)요청이 들어오더라도 return redirect('board:article_detail', article_id)
def addComment(request, article_id): article = get_object_or_404(Article, pk=article_id) comment = Comment(article_id=article, writer=request.session.get('user_id'), write_date=datetime.datetime.now()) comments_form = CommentForm(request.POST, instance=comment) if comments_form.is_valid(): comments_form.save() # comments_form = CommentsForm() context = { 'comment_id': comment.id, 'comment': comment.comment, 'writer': comment.writer, 'write_date': comment.write_date.strftime("%Y-%m-%d %H:%M") } return HttpResponse(json.dumps(context), content_type="application/json")
def comment(request, post_id): if request.method == "POST": c = Comment() c.text = request.POST["text"] c.pub_date = datetime.now() c.post_id = post_id c.save() return HttpResponseRedirect( reverse("comment", args=(post_id,)) ) else: post = Post.objects.get(id=post_id) comments = post.comment_set.all() return render(request, "comment.html", {"post": post, "comments": comments})
def setUpTestData(cls): # create user user = User.objects.create(name=name, email=email, password=password) # get token when login request = RequestFactory().post('/login/', data=json.dumps({ 'email': email, 'password': password }), content_type='application/json') global token token = json.loads(login(request=request).content)['token'] # create a post post = Post() post.author = user post.content = "測試用的發文" post.save() # get post_id for post_item in Post.objects.filter(content="測試用的發文"): global post_id post_id = post_item.id # create a comment comment = Comment() comment.post = post comment.author = user comment.content = "對測試發文留言哦" comment.save() # get comment_id for comment_item in Comment.objects.filter(content='對測試發文留言哦'): global comment_id comment_id = comment_item.id
def post(self, request, *args, **kwargs): if Block.is_blocked(request.META['REMOTE_ADDR']): return JsonResponse({'status': 'no_permission'}, status=403) target_type = request.POST.get('type') contents = request.POST.get('contents') c = Comment() ndata = treedict() if target_type == 'p': try: c.post = Post.objects.get(pk=self.pk) to_user = c.post.user ndata['type'] = 'COMMENT_ON_POST' ndata['message'] = _('Comment on "%(post)s"') % {'post': truncate_chars(c.post.title, 12)} except Post.DoesNotExist: return self.not_found() elif target_type == 'c': try: c.comment = Comment.objects.get(pk=self.pk) c.post = c.comment.post if c.depth > settings.BOARD_COMMENT_MAX_DEPTH: return self.bad_request() to_user = c.comment.user ndata['type'] = 'COMMENT_ON_COMMENT' ndata['message'] = _('Comment on your comment of "%(post)s"') % {'post': truncate_chars(c.post.title, 8)} except Comment.DoesNotExist: return self.not_found() else: return self.bad_request() if is_empty_html(contents): return JsonResponse({'status': 'badrequest', 'error_fields': ['contents']}, status=400) if request.user.is_authenticated(): c.user = request.user from_user = request.user else: ot_user = OneTimeUser() ot_user.nick = request.POST.get('ot_nick') ot_user.password = request.POST.get('ot_password') request.session['onetime_user'] = {'nick': ot_user.nick, 'password': ot_user.password} try: ot_user.full_clean() except ValidationError as ex: return JsonResponse({'status': 'badrequest', 'error_fields': list(ex.message_dict.keys())}, status=400) else: ot_user.password = make_password(ot_user.password) ot_user.save() c.onetime_user = ot_user from_user = ot_user c.ipaddress = request.META['REMOTE_ADDR'] c.contents = contents f = Filter.is_trigger(c) if f: return JsonResponse({'status': 'filtered', 'filter': f.id}, status=400) c.save() if (to_user is not None) and (from_user != to_user): ndata['url'] = c.get_absolute_url() cleaned_text = replace_tags_to_text(c.contents) ndata['text'] = truncate_chars(cleaned_text, 50) Notification.create(from_user, to_user, ndata) qdict = QueryDict('', mutable=True) qdict.update({ 'type': 'c', 'target': str(c.id), 'vote': '++', }) r = request r.POST = qdict v = VoteAjaxView() v.post(r) return self.success()
def test_saving_and_retrieving_comment(self): second_post = Post.objects.create( board=self.default_board, title='some post title', content='some post content' ) first_comment = Comment() first_comment.post = self.default_post first_comment.content = 'This is a first comment' first_comment.account = self.user first_comment.ip = '127.0.0.1' first_comment.save() second_comment = Comment() second_comment.post = second_post second_comment.content = 'This is a second comment' second_comment.account = self.user second_comment.ip = '127.0.0.1' second_comment.save() saved_comments = Comment.objects.all() self.assertEqual(saved_comments.count(), 2) saved_comments_on_default_post = Comment.objects.filter(post=self.default_post) saved_comments_on_second_post = Comment.objects.filter(post=second_post) self.assertEqual(saved_comments_on_default_post.count(), 1) self.assertEqual(saved_comments_on_second_post.count(), 1) first_saved_comment = saved_comments[0] second_saved_comment = saved_comments[1] self.assertEqual(first_saved_comment.content, 'This is a first comment') self.assertEqual(second_saved_comment.content, 'This is a second comment')
def post(self, request, *args, **kwargs): if Block.is_blocked(request.META['REMOTE_ADDR']): return JsonResponse({'status': 'no_permission'}, status=403) target_type = request.POST.get('type') contents = request.POST.get('contents') c = Comment() ndata = treedict() if target_type == 'p': try: c.post = Post.objects.get(pk=self.pk) to_user = c.post.user ndata['type'] = 'COMMENT_ON_POST' ndata['message'] = _('Comment on "%(post)s"') % {'post': truncate_chars(c.post.title, 12)} except Post.DoesNotExist: return self.not_found() elif target_type == 'c': try: c.comment = Comment.objects.get(pk=self.pk) c.post = c.comment.post if c.depth > settings.BOARD_COMMENT_MAX_DEPTH: return self.bad_request() to_user = c.comment.user ndata['type'] = 'COMMENT_ON_COMMENT' ndata['message'] = _('Comment on your comment of "%(post)s"') % {'post': truncate_chars(c.post.title, 8)} except Comment.DoesNotExist: return self.not_found() else: return self.bad_request() if is_empty_html(contents): return JsonResponse({'status': 'badrequest', 'error_fields': ['contents']}, status=400) if request.user.is_authenticated(): c.user = request.user from_user = request.user else: ot_user = OneTimeUser() ot_user.nick = request.POST.get('ot_nick') ot_user.password = request.POST.get('ot_password') request.session['onetime_user'] = {'nick': ot_user.nick, 'password': ot_user.password} try: ot_user.full_clean() except ValidationError as ex: return JsonResponse({'status': 'badrequest', 'error_fields': list(ex.message_dict.keys())}, status=400) else: ot_user.password = make_password(ot_user.password) ot_user.save() c.onetime_user = ot_user from_user = ot_user c.ipaddress = request.META['REMOTE_ADDR'] c.contents = contents c.save() if (to_user is not None) and (from_user != to_user): ndata['url'] = c.get_absolute_url() cleaned_text = replace_tags_to_text(c.contents) ndata['text'] = truncate_chars(cleaned_text, 50) Notification.create(from_user, to_user, ndata) qdict = QueryDict('', mutable=True) qdict.update({ 'type': 'c', 'target': str(c.id), 'vote': '++', }) r = request r.POST = qdict v = VoteAjaxView() v.post(r) return self.success()
def comment(request, post_id): c = Comment(post_id=post_id, txt=request.POST["comment_text"], published_at=datetime.datetime.now()) c.save() return HttpResponseRedirect("/post/" + post_id)
def view(request, no=0, page=1): # 존재하는 게시글이 없을 경우 return if no == 0: return HttpResponseRedirect('list') board = Board.objects.filter(id=no) comments = Comment.objects.filter(blog_id=no) data = {'board': board[0], 'page': page, 'comments': comments} # 검색어 kwd = request.GET.get('kwd') if kwd is None: data['kwd'] = json.dumps(kwd) else: data['kwd'] = kwd authuser = request.session.get('authUser') if authuser is None: return render(request, 'board/view.html', data) comment = Comment() comment.blog = Board.objects.get(id=no) comment.comment_textfield = request.POST.get('comment_textfield') if comment.comment_textfield is None: return render(request, 'board/view.html', data) comment.comment_date = request.POST.get('comment_date') comment.comment_user = User.objects.get( id=request.session['authUser']['id']) comment.save() response = render(request, 'board/view.html', data) # [1] 로그인 확인 if request.session.get('authUser') is None: cookie_name = 'hit' else: cookie_name = f'hit:{request.session["authUser"]["id"]}' # [2] 그 날 당일 밤 12시에 쿠키 삭제 tomorrow = datetime.datetime.replace(datetime.datetime.now(), hour=23, minute=59, second=0) expires = datetime.datetime.strftime(tomorrow, "%a, %d-%b-%Y %H:%M:%S GMT") # [3] hit를 check하는 쿠키가 있는 경우 if request.COOKIES.get(cookie_name) is not None: cookies = request.COOKIES.get(cookie_name) cookies_list = cookies.split('|') if str(no) not in cookies_list: response.set_cookie(cookie_name, cookies + f'|{no}', expires=expires) board.update(hit=F('hit') + 1) return response else: response.set_cookie(cookie_name, no, expires=expires) board.update(hit=F('hit') + 1) return response return render(request, 'board/view.html', data)