카테고리 없음
내일 배움 캠프 최종 프로젝트
하늘유니콘
2023. 6. 13. 22:21
오늘 배운 거: 템플릿으로 부트스트랩으로 작성, 질문상세화면 완성
답변 등록을 위한 URL 매핑 등록하기
(...생략...)
urlpatterns = [
path('', views.index, name='index'),
path('<int:question_id>/', views.detail, name='detail'),
path('answer/user_id/<int:question_id>/', views.user_id, name='user_id'),
path('answer/user_id/<int:question_id>/', views.user_id, name='user_id'),
이 코드는 상세화면에서 <댓글>버튼을 눌렀을 때 form 엘리먼트의 counsel/answer/user_id/2/에 대한 URl 매핑을 추가한 내용입니다.
answer_create 함수 추가하기
from datetime import timezone #타임 존 날짜가 들어가기 때문에 타임 존을 선언
def user_id(request, question_id):
"""
counsel 댓글 등록
"""
question = get_object_or_404(Question, pk=question_id)#모델에 주어진 question_id에 해당하는 객체를 조회
#만약 객체가 존재하지 않을 때 404에러를 반환하는 의미
question.user_id(content=request.POST.get('content'),
user_id=timezone.now()) # POST 요청 시 콘텐츠라는 데이터를 가져옴
return redirect('counsel:detail', question_id=question_id)#댓글 등록 후 상세화면으로 이동하기
return redirect('counsel:detail', question_id=question_id)
상세화면을 호출할려묜 redirect 함수를 사용하여 코드를 작성하면 된다.
redirect 함수는 함수에 전달하는 전달되는 값을 참고하여 페이지 이동을 수행합니다.
함수의 첫 번째 인수에는 이동 할 페이지 별칭, 두번쨰는 URL에 전달해야 하는 값을 입력합니다.
템플릿으로 확인 한 결과 답변을 등록 할 수 있는 창과<댓글등록>
버튼이 보입니다.
설정 파일에 디렉터리 위치하기
(...생략...)
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / 'static',
]
BASE_DIR / 'static'. C:/project/mysite/static을 의미합니다.
스태틱 디렉터리 만들고 스타일시트 작성하기
(venv)mkdir static #static 풀더를 추가함
나머지는 프런트엔드 템플렛 작업입니다.