카테고리 없음

내일 배움 캠프 최종 프로젝트

하늘유니콘 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 풀더를 추가함

나머지는 프런트엔드 템플렛 작업입니다.