일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준
- 프레임워크와 라이브러리의 차이
- 연결요소
- EOF
- 장고란
- 시간복잡도
- 매크로
- getline
- c++
- 입출력 패턴
- 자료구조
- k-eta
- Django Nodejs 차이점
- 표준 입출력
- Django란
- scanf
- 구조체와 클래스의 공통점 및 차이점
- string 메소드
- double ended queue
- 2557
- 입/출력
- correlation coefficient
- UI한글변경
- Django의 편의성
- iOS14
- vscode
- 이분그래프
- 알고리즘 공부방법
- 엑셀
- string 함수
- Today
- Total
Storage Gonie
30. (app2) 커스텀 From 직접 만들기(detail.html수정) 본문
모델을 이용해 만드는 방법은 디자인이 한정되어 있는데 이것은 사용자 마음대로 디자인을 구성할 수 있다.
1. detail.html수정
- 아래의 코드로 수정.
- question 객체는 views의 detail메소드로부터 전달받은 것.
- error_message 가 있다면 에러메시지 출력.
- form의 action에는 전달할 url이 들어간다.
- csrf_token은 보안때문에 항상 넣어줘야 한다.(CSRF : 사용자의 의지와는 무관하게 공격자가 의도한 행위CRUD를 특정 웹사이트에 요청하게 하는 공격)
- input은 라디오버튼, 라벨은 그 옆의 텍스트를 생성한다.
- input의 id에서 choice는 그냥 텍스트이고 forloop.counter를 해주면 1부터 증가하는 숫자가 들어가게 된다. value에서 choice.id는 객체의 primary key 값임.
- label의 for는 input의 id와 연결됨을 의미.
- 두번째 코드는 페이지에 접속 후 코드를 보면 보여지는 코드.
- 아직까지는 투표 버튼을 눌러도 투표수가 증가하진 않는다.
<h2>{{ question.question_text }}</h2>
{% if error_message %}
<p><strong>{{ error_message }}</strong></p>
{% endif %}
<form action="{% url 'polls:vote' question.id%}" method="POST">
{% csrf_token %}
{% for choice in question.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id}}"/>
<label for="choice{{ forloop.counter }}"> {{choice.choice_text}} <label/><br>
{% endfor %}
<input type="submit" value="투표"/>
</form>
<h2>짜장?짬뽕?</h2>
<form action="/polls/5/vote/" method="POST">
<input type='hidden' name='csrfmiddlewaretoken' value='xbZ6P6EvrM0SVs7YrNbSsKbozunoacVOBE3S8aA3Pbqh5ac1UIuvQXQcmzNA4B8o' />
<input type="radio" name="choice" id="choice1" value="9"/>
<label for="choice1"> 짜장 <label/><br>
<input type="radio" name="choice" id="choice2" value="10"/>
<label for="choice2"> 짬뽕 <label/><br>
<input type="submit" value="투표"/>
</form>
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
32. (app2) 투표결과 페이지 만들기 (result메소드 수정) (0) | 2019.02.19 |
---|---|
31. (app2) POST 처리 (투표결과 DB반영하기) (0) | 2019.02.19 |
29. (app2) 하드코딩 URL 제거(index.html 수정, polls.urls.py 수정) (0) | 2019.02.19 |
28. (app2) Django 404핸들링 (0) | 2019.02.17 |
27. (app2) template 연동 1 (0) | 2019.02.17 |