def create(): form = QuestionForm() if request.method=='POST' and form.validate_on_submit(): question = Question(subject=form.subject.data, content=form.content.data, create_date=datetime.now(), user=g.user) db.session.add(question) db.session.commit() return redirect(url_for('main.index')) return render_template('question/question_form.html', form=form)
def create(): form = QuestionForm() if request.method == "POST" and form.validate_on_submit(): question = Question( subject=form.subject.data, content=form.content.data, create_date=datetime.now(), ) db.session.add(question) db.session.commit() return redirect(url_for("main.index")) return render_template("question/question_form.html", form=form)
def create(): form = QuestionForm() # request.method: request 전송 방식 # form.validate_on_submit(): 전송된 폼 데이터의 정합성 체크 # POST 요청 시에 폼 데이터에 문제가 없으면 db 저장 후 main.index 화면으로 redirect한다. if request.method == 'POST' and form.validate_on_submit(): # form data 접근 - form.subject.data # user 필드 반영 - g.user question = Question(subject=form.subject.data, content=form.content.data, create_date=datetime.now(), user=g.user) # question 객체 db 저장 db.session.add(question) db.session.commit() return redirect(url_for('main.index')) return render_template('question/question_form.html', form=form)
def create(): form = QuestionForm() # POST 방식으로 들어올 경우(질문 저장) 해당 if 문을 실행하고 질문 리스트를 보여준다 # form.validate_on_submit() : POST 방식으로 전송된 폼 데이터의 적합성을 점검한다 if request.method == 'POST' and form.validate_on_submit(): question = Question(subject=form.subject.data, content=form.content.data, create_date=datetime.now(), user=g.user) db.session.add(question) db.session.commit() return redirect(url_for('main.index')) # GET 방식으로 들어올 경우(질문 등록 버튼 클릭) 질문 게시판 폼을 보여준다 return render_template('question/question_form.html', form=form)
def create(): menu_id = request.args.get('menu_id', type=int, default=1) form = QuestionForm() if request.method == 'POST' and form.validate_on_submit(): question = Question(subject=form.subject.data, content=form.content.data, create_date=datetime.now(), user=g.user, menu_id=menu_id) db.session.add(question) db.session.commit() return redirect(url_for('question._list', menu_id=menu_id)) # 메뉴 리스트 menu_list = Menu.query.order_by(Menu.sort_no.asc()) # 메뉴(선택) menu = Menu.query.get_or_404(menu_id) return render_template('question/question_form.html', form=form, menu_list=menu_list, menu=menu)
def question_modify(request, question_id): """ pybo 질문수정 """ question = get_object_or_404(Question, pk=question_id) # 사용자 == 글쓴이 ?? if request.user != question.author: messages.error(request, '수정권한이 없습니다') return redirect('pybo:detail', question_id=question.id) # 입력 form 요소 내용 POST 전송시 객체에 저장. if request.method == "POST": # 기본 값을 기반으로 전달받은 입력값들 덮어써서 QuestionForm 생성하라는 의미. form = QuestionForm(request.POST, instance=question) if form.is_valid(): question = form.save(commit=False) question.author = request.user question.modify_date = timezone.now() # 수정일시 현재 시간으로 저장 question.save() return redirect('pybo:detail', question_id=question.id) # GET 전송시 기존 제목, 내용 그대로. else: # 기존 제목, 내용 그대로 form = QuestionForm(instance=question) context = {'form': form} return render(request, 'pybo/question_form.html', context)
def question_create(request): """ pybo 질문 등록 & 저장 """ # URL = pybo/question/create # 동일한 URL 요청을 POST, GET 따라 다르게 처리 # POST 방식일때 (저장하기 버튼) = 저장해줌 if request.method == 'POST': form = QuestionForm(request.POST) if form.is_valid(): # 임시저장하고 (아직 submit, content만 있기 때문) question = form.save(commit=False) # author(글쓴이) = user() question.author = request.user # 작성 시간 필드 채워주고 question.create_date = timezone.now() # 진짜 저장 question.save() # pybo/index (= 목록 보여주는 페이지)로 redirect return redirect('pybo:index') # 따로 method없으면 GET 방식일때 = 입력창 보여줌. else: form = QuestionForm() context = {'form': form} return render(request, 'pybo/question_form.html', context)
def modify(question_id): question = Question.query.get_or_404(question_id) if g.user != question.user: flash("수정 권한이 없습니다.") return redirect(url_for("question.detail", question_id=question_id)) if request.method == "POST": form = QuestionForm() if form.validate_on_submit(): form.populate_obj(question) question.modify_date = datetime.now() # 수정일시 저장 db.session.commit() return redirect(url_for("question.detail", question_id=question_id)) else: form = QuestionForm(obj=question) form.label = "질문 수정" return render_template("question/question_form.html", form=form)
def modify(question_id): question = Question.query.get_or_404(question_id) if g.user != question.user: flash('수정권한이 없습니다') return redirect(url_for('question.detail', question_id=question_id)) if request.method=='POST': form = QuestionForm() if form.validate_on_submit(): form.populate_obj(question) question.modify_date = datetime.now() db.session.commit() return redirect(url_for('question.detail', question_id=question_id)) else: form = QuestionForm(obj=question) return render_template('question/question_form.html', form=form)
def question_create(request): if request.method == 'POST': form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=False) question.author = request.user question.create_date = timezone.now() question.save() return redirect('pybo:index') else: form = QuestionForm() context = {'form': form} return render(request, 'pybo/question_form.html', context)
def question_modify(request, question_id): question = get_object_or_404(Question, pk=question_id) if request.user != question.author: messages.error(request, '수정권한이 없습니다.') return redirect('pybo:detail', question_id=question.id) if request.method == "POST": form = QuestionForm(request.POST, instance=question) if form.is_valid(): question = form.save(commit=False) question.author = request.user question.modify_date = timezone.now() question.save() return redirect('pybo:detail', question_id=question.id) else: form = QuestionForm(instance=question) context = {'form': form} return render(request, 'pybo/question_form.html', context)
def modify(question_id): question = Question.query.get_or_404(question_id) # 사용자가 글쓴이가 아닌 경우 flash 출력 if g.user != question.user: flash('수정권한이 없습니다') return redirect(url_for('question.detail', question_id=question_id)) # POST 방식인 경우 새롭게 입력된 값들로 Question을 수정해준다. if request.method == 'POST': form = QuestionForm() if form.validate_on_submit(): # form에 입력되어있는 데이터를 question 객체에 적용해 준다. form.populate_obj(question) question.modify_date = datetime.now() # 수정일시 저장 db.session.commit() return redirect(url_for('question.detail', question_id=question_id)) else: # QuestionForm(obj=question): 조회한 데이터를 obj 인자로 전달하여 폼을 생성한다. form = QuestionForm(obj=question) return render_template('question/question_form.html', form=form)
def modify(question_id): question = Question.query.get_or_404(question_id) if g.user != question.user: flash('수정권한이 없습니다') return redirect(url_for('question.detail', question_id=question_id)) if request.method == 'POST': form = QuestionForm() if form.validate_on_submit(): form.populate_obj(question) question.modify_date = datetime.now() # 수정일시 저장 db.session.commit() return redirect(url_for('question.detail', question_id=question_id)) else: form = QuestionForm(obj=question) # 메뉴 리스트 menu_list = Menu.query.order_by(Menu.sort_no.asc()) # 메뉴(선택) menu = Menu.query.get_or_404(question.menu_id) return render_template('question/question_form.html', form=form, menu_list=menu_list, menu=menu)