示例#1
0
def write(request, page=1):
    # 인증
    authuser = request.session.get('authUser')
    if authuser is None:
        return HttpResponseRedirect('/board/list')
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User.objects.get(id=request.session['authUser']['id'])

    # 새글 작성
    if request.POST['no'] == '-1':
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        board.groupno = value["max_groupno"] + 1
        board.save()
    # 답글 작성
    else:
        board2 = Board.objects.get(id=request.POST['no'])
        Board.objects.filter(orderno__gte=board2.orderno +
                             1).update(orderno=F('orderno') + 1)
        board.groupno = board2.groupno
        board.orderno = board2.orderno + 1
        board.depth = board2.depth + 1
        board.save()
    data = {'page': 1}
    # 검색어
    kwd = request.GET.get('kwd')
    print(kwd, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
    if kwd is None:
        data['kwd'] = json.dumps(kwd)
    else:
        data['kwd'] = kwd
    return HttpResponseRedirect(f'/board/list/{page}?kwd={kwd}')
示例#2
0
文件: views.py 项目: ydhwa/pysite
def insert(request):
    if 'authuser' not in request.session:
        return HttpResponseRedirect('/board')

    board = Board()

    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User(**request.session['authuser'])

    # 그룹번호 1부터 시작
    groupno = int(request.POST['groupno'])
    if groupno == 0:
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        groupno = 1 if value[
            'max_groupno'] is None else value['max_groupno'] + 1
    board.groupno = groupno

    orderno = 0 if request.POST['groupno'] == '0' else int(
        request.POST['orderno'])
    Board.objects.filter(groupno=groupno).filter(
        orderno__gte=orderno + 1).update(orderno=F('orderno') + 1)
    board.orderno = orderno + 1

    board.depth = 0 if request.POST['groupno'] == '0' else int(
        request.POST['depth']) + 1

    board.save()

    page = request.POST['page']
    kwd = request.POST['kwd']

    return HttpResponseRedirect(f'/board/list?page={page}&kwd={kwd}')
示例#3
0
def write(request):
    user_id = get_session_user_id(request)
    if not user_id:
        return HttpResponseRedirect('/board/1')

    article = Board()
    article.user = User.objects.get(id=user_id)
    article.title = request.POST['title']
    article.content = request.POST['content']

    if request.POST["write_type"] == "new":
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        if value["max_groupno"] is not None:
            article.groupno = value["max_groupno"] + 1
            print("new")
    else:
        obj = Board.objects.get(id=request.POST["write_type"])
        article.groupno = obj.groupno
        article.orderno = obj.orderno + 1
        article.depth = obj.depth + 1
        Board.objects.filter(groupno=obj.groupno). \
            filter(orderno__gt=obj.orderno). \
            update(orderno=F('orderno') + 1)

    article.save()
    obj = Board.objects.latest('id')

    return HttpResponseRedirect('/board/view/' + str(obj.id))
示例#4
0
文件: views.py 项目: skok1025/pysite1
def write(request):
    user = User.objects.get(id=request.session['authuser']['id'])
    board = Board()
    board.user = user
    board.title = request.POST['title']
    board.content = request.POST['content']

    print('-------------',request.POST['replyno'])
    if int(request.POST['replyno']) != 0:
        # 답글인 경우
        originboard = Board.objects.get(id=request.POST['replyno'])
        Board.objects\
            .filter(groupno=originboard.groupno)\
            .filter(orderno__gte=originboard.orderno)\
            .update(orderno=F('orderno')+1)
        board.groupno = originboard.groupno
        board.orderno = originboard.orderno
        board.depth = originboard.depth + 1

    else:
        insert_groupno = Board.objects.aggregate(groupno=Max('groupno'))['groupno'] + 1
        print(insert_groupno,type(insert_groupno))
        board.groupno = insert_groupno

    board.save()

    return HttpResponseRedirect('/board/list')
示例#5
0
def reply(request, id=0):
    # 로그인 체크
    if check_authuser(request) is None:
        return HttpResponseRedirect('/user/loginform')
    else:
        if request.method == 'GET':
            return render(request, 'board/write.html')
        elif request.method == 'POST':
            board = Board.objects.get(id=id)
            # query set 예제
            # groupno = 1이고 orderno >=1 의
            # 게시물의 order_no를 1씩 증가
            # __gt, __lt, __gte, __lte
            reply_board = Board()
            reply_board.title = request.POST['title']
            reply_board.content = request.POST['content']
            reply_board.user = User.objects.get(id=request.session['authuser']['id'])
            reply_board.groupno = board.groupno
            # value = Board.objects.filter(groupno=board.groupno).filter(depth=board.depth+1).aggregate(max_orderno=Max('orderno'))
            # max_orderno = 0 if value["max_orderno"] is None else value["max_orderno"]
            reply_board.orderno = board.orderno + 1
            reply_board.depth = board.depth + 1
            reply_board.save()
            # Board.objects.filter(groupno=board.groupno).filter(orderno=board.orderno).update(depth=F('depth') + 1)
            return HttpResponseRedirect('/board/1')
示例#6
0
文件: views.py 项目: exizt/mysite02
def write(request):
    authuser = request.session.get('authuser')
    if authuser is None:
        # 유저가 아닌 접근이므로. 비정상 접근이거나 세션 해제된 상태.
        return HttpResponseRedirect('/')

    title = request.POST.get('title', '')
    contents = request.POST.get('contents', '')

    user = User.objects.get(id=authuser['id'])

    max_gno = Board.objects.aggregate(g_no=Max('g_no'))['g_no']
    if max_gno is None or max_gno == '':
        max_gno = 0

    # 저장 처리
    board = Board()
    board.title = title
    board.contents = contents
    board.user = user
    board.g_no = int(max_gno) + 1
    board.save()

    # board = Board(title=title, contents=contents, user=user)
    # board.save()

    # ret = Board.insert(data)
    # if ret != 1:
    #     return HttpResponse('오류 발생')

    return HttpResponseRedirect('/board/')
示例#7
0
文件: views.py 项目: exizt/mysite02
def reply(request):
    authuser = request.session.get('authuser')
    if authuser is None:
        # 유저가 아닌 접근이므로. 비정상 접근이거나 세션 해제된 상태.
        return HttpResponseRedirect('/')

    title = request.POST.get('title', '')
    contents = request.POST.get('contents', '')

    g_no = request.POST.get('g_no', 0)
    o_no = request.POST.get('o_no', 0)
    depth = request.POST.get('depth', 0)

    user = User.objects.get(id=authuser['id'])

    # 저장 처리
    board = Board()
    board.title = title
    board.contents = contents
    board.user = user
    board.g_no = int(g_no)
    board.o_no = int(o_no) + 1
    board.depth = int(depth) + 1
    board.save()

    # ret = Board.reply(data)
    # if ret != 1:
    #    return HttpResponse('오류 발생')

    return HttpResponseRedirect('/board/')
示例#8
0
文件: views.py 项目: skok1025/pysite
def write(request):
    user = User.objects.get(id=request.session['authuser']['id'])
    board = Board()
    board.user = user
    board.title = request.POST['title']
    board.content = request.POST['content']

    if int(request.POST['replyno']) != 0:
        # 답글인 경우
        originboard = Board.objects.get(id=request.POST['replyno'])
        Board.objects \
            .filter(groupno=originboard.groupno) \
            .filter(orderno__gte=originboard.orderno) \
            .update(orderno=F('orderno') + 1)
        board.groupno = originboard.groupno
        board.orderno = originboard.orderno
        board.depth = originboard.depth + 1

    else:
        insert_groupno = 1 if Board.objects.aggregate(groupno=Max(
            'groupno'))['groupno'] is None else Board.objects.aggregate(
                groupno=Max('groupno'))['groupno'] + 1
        board.groupno = insert_groupno

    board.save()
    response = HttpResponseRedirect('/board/list')
    cookie_name = f'view_user_{board.id}'
    set_cookie(response, cookie_name, '',
               1)  # 유효기간이 1일인 쿠키를 만든다. (게시물 카운트를 위해)
    return response
示例#9
0
def write(request):
    # user = models.ForeignKey(User, to_field='id', on_delete=models.CASCADE)
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    userid = request.session['authUser']['id']
    user = User.objects.get(id=userid)
    board.user = user

    if request.POST['groupno'] != '':
        print('request.POST[groupno] !=')
        board.groupno = request.POST['groupno']
        board.depth = int(request.POST['depth']) + 1
        board.orderno = int(request.POST['orderno']) + 1
    else:
        max_board = Board.objects.aggregate(max_groupno=Max('groupno'))
        if max_board is not None:
            max_groupno = 0 if max_board['max_groupno'] is None else max_board[
                "max_groupno"]
            board.groupno = max_groupno + 1
        else:
            board.groupno = 1

    board.save()

    return HttpResponseRedirect('/board')
示例#10
0
文件: views.py 项目: asd1025/pysite
def write(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User.objects.get(id=request.session['authuser']['id'])
    board.groupno = counter_max()
    board.save()
    return HttpResponseRedirect('/board')
示例#11
0
def writetest(request):

    for idx in range(999):
        board = Board()
        board.title = '테스트 제목' + str(idx)
        board.content = '테스트 내용' + str(idx)
        board.user = User.objects.get(id=1)

        board.save()
    return HttpResponseRedirect('/')
示例#12
0
文件: views.py 项目: ssj5638/mysite
def write(request):
    print(request.POST)
    user_id = request.POST.get('user_id')
    board = Board()
    board.title = request.POST['title']
    board.message = request.POST['content']
    board.user = User.objects.get(id=user_id)

    board.save()

    return HttpResponseRedirect('/board')
示例#13
0
文件: views.py 项目: hajiseung/pysite
def write(request):
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    groupno_value = Board.objects.aggregate(max_groupno=Max('groupno'))
    board.groupno = 0 if groupno_value["max_groupno"] is None else (
        groupno_value["max_groupno"] + 1)
    board.user = User.objects.get(id=request.session['authuser']['id'])
    board.save()

    return HttpResponseRedirect('/board/1')
示例#14
0
def insert(request):
    board = Board()
    id = request.POST['user_id']
    result = User.objects.filter(id=id)
    board.user = result[0]
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.save()

    return HttpResponseRedirect('/board/')
示例#15
0
def write(request):
    board = Board()
    user_id = request.POST.get('user_id')
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.user = (User.objects.filter(
        id=request.session.get('authuser')['id']).filter(
            password=request.session.get('authuser')['password']))[0]

    board.save()
    return HttpResponseRedirect('/board')
示例#16
0
def write(request):
    if check_authuser(request) is None:
        return HttpResponseRedirect('/user/loginform')
    else:
        if request.method=='GET':
            return render(request, 'board/write.html')
        elif request.method =='POST':
            value = Board.objects.aggregate(max_groupno=Max('groupno'))
            max_groupno = 0 if value["max_groupno"] is None else value["max_groupno"]
            board = Board()
            board.title = request.POST['title']
            board.content = request.POST['content']
            board.user = User.objects.get(id=request.session['authuser']['id'])
            board.groupno = max_groupno+1
            board.save()
            return HttpResponseRedirect('/board/1')
示例#17
0
def write(request):
    #print(request.POST)
    #<QueryDict: {'csrfmiddlewaretoken': ['oaus3dlQyB6CvnTJuL4jMN1O13EfaCccMF9liEmiTqf3VXpxwmqJkD2gYhKXmqj3'], 'a': ['1'], 'title': ['1'], 'content': ['1']}>

    #board.user.id = request.session['authuser'][id]
    #print(request.POST['a'])

    board = Board()
    #board.user = User.objects.get(id=(request.POST.get('a'))[0])
    board.user = User.objects.get(id=request.POST['a'])
    board.title = request.POST['title']
    board.content = request.POST['content']

    board.save()

    return HttpResponseRedirect('/board')
示例#18
0
def write(request):
    try:
        board = Board()
        board.title = request.POST['title']
        board.content = request.POST['content']
        # 아래부분은 수정해야 할 사항으로###############################################################################
        # 현재는 이메일과 패스워드로 비교하여 쿼리셋의 첫번째 user를 선택하도록 정하고 테스트 하였지만.
        # 실제로는 email을 primary 키로, 혹은 같은 이메일은 등록이 불가하도록 정의하는 로직이 필요하며,
        # 이는 user 객체의 VO 를 재정의 하던지, 유저 등록 시 action 을 재정의 하던지 하여 해결하도록 할 것!

        board.user = (User.objects.filter(email=request.session.get('authuser')['email']).filter(
            password=request.session.get('authuser')['password']))[0]
        ################################################################################################################
        board.save()
        return HttpResponseRedirect('/board')
    except DataError:
        return render(request, 'board/write.html', {'posts': board, 'data_error':True })
示例#19
0
文件: views.py 项目: hajiseung/pysite
def reply(request, id=0, groupno=0, orderno=0):
    groupno_value = Board.objects.get(id=id)
    if groupno_value.orderno == 0:
        Board.objects.filter(groupno=groupno).filter(orderno__gte=1).update(
            orderno=F('orderno') + 1)

    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.groupno = groupno_value.groupno
    board.orderno = 1 if groupno_value.orderno is 0 else groupno_value.orderno + 1
    if board.orderno >= groupno_value.orderno:
        Board.objects.filter(groupno=groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)
    board.depth = 1 if groupno_value.depth is 0 else groupno_value.depth + 1
    board.user = User.objects.get(id=request.session['authuser']['id'])
    board.save()

    return HttpResponseRedirect('/board/1')
示例#20
0
def write(request):
    if request.session.get('authuser') is not None:
        post = Board()
        post.title = request.POST['title']
        post.contents = request.POST['contents']
        post.order_no = 1
        post.user = User.objects.get(id=request.session['authuser']['id'])

        calc = Board.objects.aggregate(max_group_no=Max('group_no'))
        # print(calc)
        try:
            post.group_no = calc['max_group_no'] + 1
        except:
            post.group_no = 1
        post.save()

        return HttpResponseRedirect('/board/list')

    return HttpResponseRedirect('/board/writeform?result=fail')
示例#21
0
文件: views.py 项目: asd1025/pysite
def reply(request, id=0):
    # __gt, __lt, __gte, __lte /// groupno = 1 이고 orderno >= 2 의 게시물의 orderno를 1씩 증가
    user_id = request.session.get('authuser', '')
    if user_id == '':
        return HttpResponseRedirect('/user/loginform?result=require')
    board = Board.objects.get(id=id)
    # orderno update 후 insert
    Board.objects.filter(groupno=board.groupno).filter(
        orderno__gte=board.orderno + 1).update(orderno=F('orderno') + 1)

    reply = Board()
    reply.title = request.POST['title']
    reply.content = request.POST['content']
    reply.user = User.objects.get(id=request.session['authuser']['id'])
    reply.groupno = board.groupno
    reply.orderno = board.orderno + 1
    reply.depth = board.depth + 1
    reply.save()
    return HttpResponseRedirect(f'/board/')
示例#22
0
def board_write(request, id=-1):
    # 파라미터 추출 -----------------------
    try:
        kwd = request.POST['kwd']
    except Exception:
        kwd = ''

    try:
        page = int(request.POST['page'])
    except Exception:
        page = 1
    # --------------------------------------

    # 게시판 글 공통 정보 추출
    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    board.user = User.objects.get(id=request.session['authuser']['id'])

    # 게시판 답글 등록
    if id != -1:
        row = Board.objects.get(id=id)
        board.groupno = row.groupno
        board.orderno = row.orderno + 1
        board.depth = row.depth + 1

        # 해당 일반글에 대한 하위 답글의 orderno 칼럼 전부 +1씩 업데이트
        Board.objects.filter(groupno=row.groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)

        board.save()

        return HttpResponseRedirect('/board?page=' + str(page) + '&kwd=' + kwd)

    # 게시판 일반글 등록
    max_groupno = Board.objects.aggregate(max_groupno=Max('groupno'))
    board.groupno = 0 if max_groupno[
        'max_groupno'] is None else max_groupno['max_groupno'] + 1

    board.save()

    return HttpResponseRedirect('/board?page=' + str(page) + '&kwd=' + kwd)
示例#23
0
def write(request):
    if request.method == 'POST':
        title = request.POST['title']
        content = request.POST['content']

        if title == '' or content == '':
            data = {
                'result': 'fail',
                'message': '제목과 내용을 입력해 주세요',
                'title': title,
                'content': content,
            }
            return render(request, 'board/write.html', data)

        board = Board()
        board.title = title
        board.content = content

        max_groupno = Board.objects.aggregate(max_groupno=Max('groupno'))
        board.groupno = 0 if max_groupno[
            "max_groupno"] is None else max_groupno["max_groupno"] + 1

        try:
            board.user = User.objects.get(id=request.session['authuser']['id'])
            board.save()
            return HttpResponseRedirect(
                f'/board?search={request.GET.get("search", "")}&page={request.GET.get("page", "")}'
            )
        except Exception as e:
            print(e)
            data = {
                'result':
                'fail',
                'message':
                '권한이 없습니다',
                'url':
                f'/board?search={request.GET.get("search", "")}&page={request.GET.get("page", "")}'
            }
            return render(request, 'main/redirect.html', data)

    else:
        return render(request, 'board/write.html')
示例#24
0
def write(request):

    # authuser = request.session['authuser']
    #
    # if authuser is None:
    #     return HttpResponseRedirect('/board')

    board_id = request.POST['id']
    if board_id == '0':  # 그냥 글쓰기이면
        board = Board()
        board.title = request.POST['title']
        board.content = request.POST['content']

        value = Board.objects.aggregate(
            max_groupno=Max('groupno'))['max_groupno'] or 0

        if board.groupno == 0:
            board.groupno = value + 1

        user = User.objects.get(id=request.session['authuser']['id'])
        board.user = user
        board.save()

    else:  # 답글이면

        # 해당 board_id에 해당하는 객체 가져오기
        board_parent = Board.objects.get(id=board_id)
        board = Board()

        board.title = request.POST['title']
        board.content = request.POST['content']
        board.groupno = board_parent.groupno
        board.orderno = board_parent.orderno + 1

        Board.objects.filter(groupno=board.groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)
        board.depth = board_parent.depth + 1
        board.user_id = request.session['authuser']['id']

        board.save()

    return HttpResponseRedirect('/board')
示例#25
0
def createboard(request, username):
    #import pdb; pdb.set_trace()
    last_board = request.POST.get('last_board')
    user = request.user
    csrf_token = (csrf(request)['csrf_token'])
    board = Board()
    board.user = user

    title = request.POST['title']
    board.title = title
    content = request.POST['content']
    content = content.strip()

    if len(content):
        board.content = content[:255]
    board.save()

    html = _html_feeds(last_board, user, csrf_token)

    return HttpResponse(html)
示例#26
0
def write(request):
    # 로그인 체크
    if logincheck(request) is False:
        return render(request, 'board/list.html')

    board = Board()
    board.title = request.POST['title']
    board.content = request.POST['content']
    value = Board.objects.aggregate(max_groupno=Max('groupno'))
    board.groupno = 1 if value['max_groupno'] is None else value['max_groupno']+1
    board.orderno = 1
    board.depth = 0
    board.user = Users(request.session['authuser']['id'])


    board.save()

    id = Board.objects.aggregate(max_id=Max('id'))

    return HttpResponseRedirect('/board/view/'+str(id['max_id']))
示例#27
0
def reply(request):
    parent_no = request.POST['parent']
    if request.session.get('authuser') is not None:
        parent = Board.objects.filter(id=parent_no)[0]

        post = Board()
        post.title = request.POST['title']
        post.contents = request.POST['contents']
        post.user = User.objects.get(id=request.session['authuser']['id'])

        Board.objects.filter(order_no__gte=parent.order_no +
                             1).update(order_no=F('order_no') + 1)

        post.group_no = parent.group_no
        post.order_no = parent.order_no + 1
        post.depth = parent.depth + 1
        post.save()

        return HttpResponseRedirect('/board/list')

    return HttpResponseRedirect(f'/board/replyform/{parent_no}?result=fail')
示例#28
0
def write(request):
    try:
        board = Board()
        board.title = request.POST['title']
        board.content = request.POST['content']
        # 아래부분은 수정해야 할 사항으로###############################################################################
        # 현재는 이메일과 패스워드로 비교하여 쿼리셋의 첫번째 user를 선택하도록 정하고 테스트 하였지만.
        # 실제로는 email을 primary 키로, 혹은 같은 이메일은 등록이 불가하도록 정의하는 로직이 필요하며,
        # 이는 user 객체의 VO 를 재정의 하던지, 유저 등록 시 action 을 재정의 하던지 하여 해결하도록 할 것!

        board.user = (User.objects.filter(
            email=request.session.get('authuser')['email']).filter(
                password=request.session.get('authuser')['password']))[0]
        ################################################################################################################
        board.save()
        return HttpResponseRedirect('/board')
    except DataError:
        return render(request, 'board/write.html', {
            'posts': board,
            'data_error': True
        })
示例#29
0
def writereply(request, id):
    if "authuser" not in request.session:
        return render(request, "user/loginform.html")

    try:
        parent_board = Board.objects.get(id=id)
        board = Board()
        board.groupno = parent_board.groupno
        board.orderno = parent_board.orderno + 1
        board.depth = parent_board.depth + 1
        board.title = request.POST["title"]
        board.content = request.POST["content"]
        board.user = User.objects.get(id=request.session["authuser"]["id"])
        board.save()
        Board.objects.filter(groupno=board.groupno).filter(
            orderno__gte=board.orderno).update(orderno=F('orderno') + 1)
        global totalCount, listnumber
        totalCount += 1
        listnumber = getListNumber(totalCount)
    except ObjectDoesNotExist:
        pass
    return HttpResponseRedirect(f'/board/view/{board.pk}')
示例#30
0
def write_insert(request):
    # 키워드, 페이지 히스토리 전달
    kwd = request.GET.get('kwd', '')
    cur_paging_num = request.GET.get('cur_paging_num', '')

    board = Board()
    board.title = request.POST['title']
    board.contents = request.POST['content']

    user = User()
    user.id = request.session['authuser']['id']

    board.user = user

    value = Board.objects.aggregate(max_groupno=Max('group_no'))
    max_groupno = 0 if value["max_groupno"] is None else value["max_groupno"]

    board.group_no = max_groupno

    board.save()

    return HttpResponseRedirect('/board?kwd=' + kwd + '&cur_paging_num=' +
                                cur_paging_num)
示例#31
0
def write(request):
    if "authuser" not in request.session:
        return render(request, "user/loginform.html")

    board = Board()
    board.title = request.POST["title"]
    board.content = request.POST['content']
    board.depth = 0
    board.orderno = 1
    try:
        value = Board.objects.aggregate(max_groupno=Max('groupno'))
        board.groupno = 1 if value[
            "max_groupno"] is None else value["max_groupno"] + 1
        board.user = User.objects.get(id=request.session["authuser"]["id"])
        board.save()
        global totalCount, listnumber
        totalCount += 1
        listnumber = getListNumber(totalCount)

    except ObjectDoesNotExist:
        return HttpResponseRedirect('/board')

    return HttpResponseRedirect(f'/board/view/{board.pk}')