def board_write(request): parents_id = request.POST['parentsNo'] board = Board() if parents_id == "": value = Board.objects.aggregate(max_groupno=Max('groupno')) max_groupno = 0 if value["max_groupno"] is None else value["max_groupno"] board.groupno = max_groupno + 1 board.orderno = 1 board.depth = 0 else: value = Board.objects.filter(id=parents_id) # orderno를 하나씩 밀어주기 Board.objects.filter(orderno__gte=value[0].orderno + 1).update(orderno=F('orderno') + 1) board.groupno = value[0].groupno board.orderno = value[0].orderno + 1 board.depth = value[0].depth + 1 board.user_id = int(request.session['authuser']['id']) board.title = request.POST['title'] board.content = request.POST['content'] board.save() return HttpResponseRedirect('/board')
def write_post(request): pages = int(request.POST.get('pages', 1)) # 현재 페이지 kwd = str(request.GET.get('kwd', '')) # 검색어 # 공통 파라미터 -------------------------------------------------------------- # 로그인 확인 authuser = request.session['authuser'] if authuser is None: return HttpResponseRedirect('/board') board = Board() board.user_id = authuser['id'] board.title = request.POST['title'] board.content = request.POST['content'] # 스크립트를 무시하고 잘못된 정보를 줬을 때 if board.title == '': return HttpResponseRedirect('/board') if board.content == '': return HttpResponseRedirect('/board') # 부모id가 있으면 답글 parentno = int(request.POST.get('parentno', -1)) if parentno == -1: # groupno : 답글이 아니면 (Max+1) value = Board.objects.aggregate(max_groupno=Max('groupno')) max_groupno = 0 if value['max_groupno'] is None else value[ 'max_groupno'] board.groupno = max_groupno + 1 # orderno : 답글이 아니면 항상 1 board.orderno = 1 # depth : 답글이 아니면 항상 0 board.depth = 0 else: # 답글이면 일단 부모 객체를 가져온다 parents = Board.objects.get(id=parentno) # groupno : 답글이면 부모것과 같게 board.groupno = parents.groupno # orderno : 답글이면 (부모것+1) 보다 크거나 같은거 모두 (+1)해서 밀고 (부모것+1) board.orderno = parents.orderno + 1 Board.objects.filter(groupno=board.groupno).filter( orderno__gte=board.orderno).update(orderno=F('orderno') + 1) # depth : 답글이면 (부모것+1) board.depth = parents.depth + 1 # parentno : 답글이면 부모번호 board.parentno = parentno board.save() return HttpResponseRedirect('/board')
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))
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')
def write_reply(request, parent_id): authuser = check_login_auth(request) if authuser is None: return HttpResponseRedirect('/user/loginform') board = Board() parent = Board.objects.get(id=parent_id) groupno = parent.groupno orderno = parent.orderno + 1 depth = parent.depth + 1 results = Board.objects.filter(groupno=groupno).filter( orderno__gte=orderno).update(orderno=F('orderno') + 1) title = request.POST['title'] content = request.POST['content'] userid = request.session['authuser']['id'] board.title = title board.content = content board.user_id = userid board.groupno = groupno board.orderno = orderno board.depth = depth board.save() return HttpResponseRedirect('/board')
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
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}')
def add(request): if request.session.get('authuser') == None: return HttpResponseRedirect('/user/loginform') authuser = request.session['authuser'] paraentno = request.POST.get('parentno') if authuser is None: return HttpResponseRedirect('/board') board = Board() board.user_id = authuser['id'] board.title = request.POST.get('title') board.content = request.POST.get('contents') if paraentno != '': parent = Board.objects.get(id=paraentno) board.groupno = parent.groupno board.orderno = parent.orderno + 1 Board.objects.filter(groupno=board.groupno).filter(orderno__gte=board.orderno).update(orderno=F('orderno') + 1) board.depth = parent.depth + 1 else: lastboard = Board.objects.order_by('id').last() if lastboard == None: board.groupno = 1 else: board.groupno = lastboard.id +1 board.save() return HttpResponseRedirect('/board')
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')
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}')
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')
def write(request): board = Board() try: groupno = int(request.POST['groupno']) orderno = int(request.POST['orderno']) depth = int(request.POST['depth']) Board.objects.filter(groupno=groupno). \ filter(orderno__gte=orderno + 1). \ update(orderno=F('orderno') + 1) board.title = request.POST['title'] board.content = request.POST['content'] board.user_id = request.POST['user_id'] board.groupno = groupno board.orderno = orderno + 1 board.depth = depth + 1 except Exception as e: board.title = request.POST['title'] board.content = request.POST['content'] board.user_id = request.POST['user_id'] board.groupno = groupno_max() + 1 board.save() return HttpResponseRedirect('/board')
def write(request): # update board set order_no = order_no + 1 # where group_no = {groupNo} and order_no !=0 and depth = {depth}+1 board = Board() if request.POST['new'] == 'True': # 그냥 리스트에서 새 글 쓸떄 value = Board.objects.aggregate(max_groupno=Max('groupno')) max_groupno = 0 if value["max_groupno"] is None else value[ "max_groupno"] board.title = request.POST['title'] board.content = request.POST['content'] board.hit = 0 board.groupno = max_groupno + 1 board.orderno = 0 board.depth = 0 board.user_id = request.session['authuser']['id'] else: # 답글 쓸때 value = Board.objects.filter(id=request.POST['id']) Board.objects.filter(orderno__gte=value[0].orderno + 1).update(orderno=F('orderno') + 1) board.groupno = value[0].groupno board.orderno = value[0].orderno + 1 board.depth = value[0].depth + 1 board.title = request.POST['title'] board.content = request.POST['content'] board.hit = 0 board.groupno = request.POST['groupno'] board.orderno = int(request.POST['orderno']) + 1 board.depth = int(request.POST['depth']) + 1 board.user_id = request.session['authuser']['id'] board.save() return HttpResponseRedirect('/board/list')
def reply(request): #reply method 수정해야됨 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.hit = 0 board.groupno = max_groupno + 1 board.orderno = 1 board.depth = 1 board.user_id = request.session['authuser']['id'] board.save() return HttpResponseRedirect('/board/list')
def reply(request, id=0): original = Board.objects.get(id=id) board = Board() board.title = request.POST['title'] board.content = request.POST['content'] board.groupno = original.groupno board.orderno = original.orderno board.depth = original.depth + 1 board.user_id = request.session['authuser']['id'] Board.objects.filter(groupno=original.groupno).filter( orderno__gte=original.orderno).update(orderno=F('orderno') + 1) board.save() return HttpResponseRedirect('/board')
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')
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/')
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)
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')
def writereply(request): parentboard = Board.objects.get(id=request.POST['id']) board = Board() board.title = request.POST['title'] board.content = request.POST['content'] board.groupno = parentboard.groupno board.orderno = parentboard.orderno + 1 Board.objects.filter(groupno=board.groupno). \ filter(orderno__gte=board.orderno). \ update(orderno=F('orderno')+1) board.depth = parentboard.depth + 1 board.user_id = request.session['authuser']['id'] board.save() return HttpResponseRedirect(f'/board')
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']))
def write_one(request): # 인증 authuser = request.session.get('authuser') if authuser is None: return HttpResponseRedirect('/board') board = Board() board.title = request.POST['title'] board.content = request.POST['content'] # max groupno value = Board.objects.aggregate(max_groupno=Max('groupno')) max_groupno = 0 if value['max_groupno'] is None else value['max_groupno'] board.groupno = max_groupno + 1 board.orderno = 1 board.depth = 1 board.user_id = request.session['authuser']['id'] board.save() # 기본 1페이지로 이동 return HttpResponseRedirect('/board')
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}')
def write(request): authuser = check_login_auth(request) if authuser is None: return HttpResponseRedirect('/user/loginform') board = Board() title = request.POST['title'] content = request.POST['content'] userid = request.session['authuser']['id'] orderno = 1 groupno = 1 groupnovalue = Board.objects.aggregate(max_groupno=Max('groupno')) if groupnovalue['max_groupno'] is not None: groupno = int(groupnovalue['max_groupno']) + 1 board.title = title board.content = content board.user_id = userid board.groupno = groupno board.orderno = orderno board.save() return HttpResponseRedirect('/board')
def rewrite_one(request): # 인증 authuser = request.session.get('authuser') if authuser is None: return HttpResponseRedirect('/board') board = Board() board.title = request.POST['title'] board.content = request.POST['content'] # parent parent = Board.objects.get(id=request.POST['parentid']) # 같은 그룹 내 update orderno Board.objects.filter(groupno=parent.groupno).filter( orderno__gte=parent.orderno + 1).update(orderno=F('orderno') + 1) # 답글 저장 board.groupno = parent.groupno board.orderno = parent.orderno + 1 board.depth = parent.depth + 1 board.user_id = request.session['authuser']['id'] board.save() return HttpResponseRedirect('/board')
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}')
def write(request): result = auth(request) if result == True: return HttpResponseRedirect("/") if request.method == 'GET': return render(request, 'board/write.html') else: board = Board() board.title = request.POST['title'] board.content = request.POST['content'] board.hit = 0 groupno = Board.objects.aggregate(max_groupno=Max('groupno') + 1) if groupno['max_groupno'] is None: groupno['max_groupno'] = 1 board.groupno = groupno['max_groupno'] board.orderno = 1 board.depth = 0 board.user_id = request.session['authuser']['id'] board.save() return HttpResponseRedirect('/board/list/')
def reply(request, id): result = auth(request) if result == True: return HttpResponseRedirect("/") if request.method == 'GET': data = {'id': id} return render(request, 'board/replyform.html', data) else: board = Board() board.title = request.POST['title'] board.content = request.POST['content'] board.hit = 0 parent_board = Board.objects.get(id=id) board.groupno = parent_board.groupno board.orderno = parent_board.orderno + 1 board.depth = parent_board.depth + 1 board.user_id = request.session['authuser']['id'] Board.objects.filter(groupno=board.groupno).filter( orderno__gte=board.orderno).update(orderno=F('orderno') + 1) board.save() return HttpResponseRedirect('/board/list/')
def reply(request): if logincheck(request) is False: return HttpResponseRedirect('/user/loginform') groupno = int(request.POST['groupno']) orderno = int(request.POST['orderno']) depth = int(request.POST['depth']) # 기존 order update Board.objects.filter(groupno=groupno).filter(orderno__gte=orderno).update(orderno=F('orderno')+1) # 답글 등록 board = Board() board.title = request.POST['title'] board.content = request.POST['content'] board.groupno = groupno board.orderno = orderno board.depth = depth 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']));
def reply_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) no = request.GET.get('no', -1) try: board = Board.objects.get(id=no) try: user = User.objects.get(id=request.session['authuser']['id']) Board.objects.filter(groupno=board.groupno).filter( orderno__gt=board.orderno).update(orderno=F('orderno') + 1) reply_board = Board() reply_board.title = title reply_board.content = content reply_board.groupno = board.groupno reply_board.orderno = board.orderno + 1 reply_board.depth = board.depth + 1 reply_board.user = user reply_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) 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/reply-write.html')