상세 컨텐츠

본문 제목

[Django] 데이터 저장 (복습필요)

Python/Django

by TUZA 2022. 9. 16. 16:03

본문

#answer_create 별칭에 해당하는 URL 규칙
from django.urls import path

from . import views

app_name = 'pybo'

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:question_id>/', views.detail, name='detail'),
    path('answer/create/<int:question_id>/', views.answer_create, name='answer_create'),
]

#뷰 함수
from django.shortcuts import render, get_object_or_404, redirect
from django.utils import timezone
from .models import Question

(... 생략 ...)

def answer_create(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    question.answer_set.create(content=request.POST.get('content'), create_date=timezone.now())
    return redirect('pybo:detail', question_id=question.id)

'''
answer_create 함수의 매개변수 qustion_id 는 URL 매핑에 의해 그 값이 전달된다.
만약 http://locahost:8000/pybo/answer/create/2/ 라는 페이지를 요청하면
매개변수 question_id 에는 2 라는 값이 전달된다.

그리고 답변 등록 시 텍스트 창에 입력한 내용은 answer_create 함수의 첫번째 매개변수인
request 객체를 통해 읽을 수 있다. 즉, request.POST.get('content') 로 텍스트창에 입력한 내용을 읽을 수 있다.
request.POST.get('content') 는 POST 로 전송된 폼(form) 데이터 항목 중 content 값을 의미한다.

그리고 답변을 생성하기 위해 question.answer_set.create 를 사용하였다.
question.answer_set 은 질문의 답변을 의미한다.


'''

 

📖 참고 자료

템플릿 공부

https://velog.io/@jewon119/Django-%EA%B8%B0%EC%B4%88-Template-Language

반응형

관련글 더보기