장고views.py의 함수 끝까지 실행 후 재실행 되는지?
@login_required(login_url='common:login')
def answer_modify(request, answer_id):
    """
    pybo 답변수정
    """
    answer = get_object_or_404(Answer, pk=answer_id)
    if request.user != answer.author:
        messages.error(request, '수정권한이 없습니다')
        return redirect('pybo:detail', question_id=answer.question.id)

    if request.method == "POST":
        form = AnswerForm(request.POST, instance=answer)
        if form.is_valid():
            answer = form.save(commit=False)
            answer.author = request.user
            answer.modify_date = timezone.now()
            answer.save()
            return redirect('pybo:detail', question_id=answer.question.id)
    else:
        form = AnswerForm(instance=answer)
    context = {'answer': answer, 'form': form}
    return render(request, 'pybo/answer_form.html', context)

        뷰.ps에서 수정 버튼을 누르면 else:가 실행되고
        return render로 템플릿이 랜더되어 나타나는데.

        이 이후에 폼을 작성 한 뒤 저장하기 버튼을 누르면.
        어떻게 저 함수가 다시 실행되어 POST를 수행 하는지 궁금합니다 ㅠㅠ

        제가 뭘 놓치고 있는지 아래는 랜더 이후 넘어간 뒤 저장하기 버튼이 있는 곳 입니다.


{% extends 'base.html' %}

{% block content %}
<div class="container my-3">
    <form method="post" class="post-form">
        {% csrf_token %}
        {% include "form_errors.html" %}
        <div class="form-group">
            <label for="content">답변내용</label>
            <textarea class="form-control" name="content" id="content"
                      rows="10">{{ form.content.value|default_if_none:'' }}</textarea>
        </div>
        <button type="submit" class="btn btn-primary">저장하기</button>
    </form>
</div>
{% endblock %}

doodoongservice 390

M 2021년 6월 15일 11:07 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

버튼을 클릭하면 form이 submit되어 post로 요청됩니다.
이때 요청되는 URL은 form에 action속성에 정의되어 있는 URL로 요청되는데 action이 생략된 경우는
현재의 URL, 즉 브라우저의 주소창에 표시된 URL로 요청됩니다.

박응용

2021년 6월 15일 11:09 오후