Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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)
Exemplo n.º 13
0
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)