コード例 #1
0
ファイル: views.py プロジェクト: hanovator/python_projects
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: views.py プロジェクト: heohyoyeong/stockproject
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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")
コード例 #7
0
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)
コード例 #8
0
ファイル: views.py プロジェクト: nazzang49/pysite
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
コード例 #9
0
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)
コード例 #10
0
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)
コード例 #11
0
ファイル: views.py プロジェクト: naye0ng/Django
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)
コード例 #12
0
ファイル: views.py プロジェクト: gontry2/BBS_Django_2
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")
コード例 #13
0
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})
コード例 #14
0
    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
コード例 #15
0
ファイル: views.py プロジェクト: devunt/hydrocarbon
    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()
コード例 #16
0
ファイル: test_models.py プロジェクト: zzerjae/kboard
    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')
コード例 #17
0
ファイル: views.py プロジェクト: Saminu/hydrocarbon
    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()
コード例 #18
0
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)
コード例 #19
0
ファイル: views.py プロジェクト: lindsayAhn/ZIPKOK
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)