점프 투 장고를 참고하여 학습,제작하였습니다. 1.로그아웃 1-1.로그인 or 로그인 안한상태user.is_authenticated은 사용자가 로그인 상태임을 확인하고네비게이션바의 로그인 상태일 떄는 유저 이름과 로그아웃이 가능하게하고로그인상태가 아닐때는 로그인 버튼이 나오게한다. 1-2.로그아웃기능 생성common url에 logout을 생성해준다. 로그아웃을 누르면 나오는 기능로그아웃을 실행하면 다시 localhost:8000/app 페이지로 돌아가면서로그아웃을 실행하도록 만든다. 1-3.결과
점프 투 장고를 참고하여 학습,제작하였습니다.1.로그인 기능 생성장고의 django.contrib.auth앱을 활용하여 제작한다. 1-1.신규 앱 제작로그인 로그아웃기능을 만들 common 앱을 제작해준다.django-admin startapp common 제작한 common앱을 settings에 등록해준다. urls.py를 수정해 commin주소는 common 앱의 urls 파일을 사용하게 만든다. urls를 참고할 cmmon 앱 내부에 urls.py를 제작한다. 1-2.로그인 기능생성navbar.html 파일에 네비게이션 바에 common의 login url로 이동되는 로그인을 만든다. 위의 로그인 버튼을 누르면 이동될 login url을 매핑해준다.이것은 common 템플..
점프 투 장고를 참고하여 학습,제작하였습니다.1.댓글 개수 표시글 옆에 작은 글씨로 댓글 개수를 표시하는 기능추가 1-1.기능추가if voca.comment_set.count > 0voca를 외래키로 가지는 comment의 개수가 0보다 크다면 {{ voca.comment_set.count }}voca를 외래키로 가지는 comment의 개수를 text-danger small mx-2 로 작은 빨간 글씨로 보여준다. 1-2.결과
점프 투 장고를 참고하여 학습,제작하였습니다.현재 오류모든 페이지의 시작번호가 1번이다 2.템플릿 필터템플릿 태그에서 | 문자 뒤에 사용하는 필터를 말한다. 2-1 해결방안번호 = 전체건수 - 시작인덱스 - 현재인덱스 + 1으로 바꿔야한다. 2-2.템플릿필터 만들기@register.filter 에너레이터를 적용하면 템플릿에서 해당 함수를 필터로 사용할수있다.만든 sub 함수는 value , arg 값을 입력받으면 value 에서 arg를 뺀값을 리턴해주는 필터다. 2-3템플릿 필터 적용app_filter을 로드하고기존 번호 표시 부분을 수정한다.전체건수-시작인덱스 -현재 인덱스 +1가 현재 번호다.전체건수:voca_list.paginator.count시작인덱스:voca_list..
점프 투 장고를 참고하여 학습,제작하였습니다.1.테스트 데이터 대량생성 1-1.장고쉘 실행 python manage.py shell 1-2. 테스트 데이터 생성from app.models import Vocafor i in range(300): q = Voca(english_vo='테스트 영어'+str(i), korean_vo=str(i)+"테스트",number_vo=i) q.save() 1-3.데이터 확인 1-4.페이지 확인 2.페이징(Paginator)Django에서 페이징을 위해 사용하는 클래스 Paginator를 사용한다. 2-1.views.py단어목록이 나타날 index 함수에 Paginator 을 사용하여 페이징기능을 생성한다. 2-2.voca..
점프 투 장고를 참고하여 학습,제작하였습니다.1.네비게이션바부트스트랩에 있는 네비게이션 바를 이용해 네비게이션바를 만들자 1-1 base.html공통적으로 페이지에 적용되야하므로 base.html에 네비게이션 바를 만든다. 1-2.결과 줄였을때 나오는 작은 메뉴버튼이 작동안됨 1-2 js 파일추가메뉴버튼 작동을 위해 부트스트랩의 js 파일을 static에 넣는다. 1-3.js 파일 적용base.html 파일에 js 파일을 적용한다. 1-4.결과버튼을 누르면 로그인이 나오는걸 볼수있다. 2.include네비게이션바를 base.html에서 분리한뒤 base.html 템플릿에 포함시키기 2-1.navbar.html 생성네비게이션 기능의 html 파일을 생..
점프 투 장고를 참고하여 학습,제작하였습니다.1.수동폼{{ form.as_p }}을 사용하면 빠르게 템플릿을 만들수있지만 디자인측면에서 제한이 많이 걸린다. 1-1.widget 속성 제거수작업 수동폼을 만들시 widget 속성이 필요없으므로 제거한다. 1-2.Voca_form 템플릿 수정수정전 오류발생(아무런 입력이 되지않음)부분을 추가한다.voca_create 함수의 form.is_valid()이 실패할경우 오류발생으로 판단한다. 1-3.결과 2.댓글 수동폼2-1.댓글 폼수정 2-2. 뷰 answer_create수정voca_create와 같은 방식으로 수정 2-3.템플릿 수정 2-4.결과
점프 투 장고를 참고하여 학습,제작하였습니다. 1.영단어 등록만들기 1-1.버튼만들기누르면 'voca_create' url 로 이동하는 버튼을 만든다. 1-2.URL 매핑하기'voca_create'이름의 url 을 매핑하준다. 해당 url은 views.voca_create 함수를 호출한다. 1-3.폼 제작forms.ModelForm을 상속받은 클래스이다. 모델 폼은 모델과 연결된 폼으로 폼을 저장하면 연결된 모델의 데이터를 저장할수 있는 폼이다.이경우 Meta 클래스가 필요하며 모델과 모델의 속성을 적어야한다. 1-4.뷰함수url이 호출할 voca_create 함수를 만든다.render 함수에 전달한 {'form': form}은 템플릿에서 질문 등록시 사용할 폼 엘리먼트를 생성할 때..