13. ํผ ๋ ์ด๋ธ + ์๋ ํผ ์์ฑ + ๋ต๋ณ ๋ฑ๋ก
# ํผ ๋ ์ด๋ธ
1. ์ง๋ฌธ ๋ฑ๋ก ํ๋ฉด์ 'Subject', 'Content'๋ฅผ ์๋ฌธ์ด ์๋ ํ๊ธ๋ก ํ์ํ๊ธฐ ์ํด projects\mysite\pybo\forms.py ํ์ผ์ labels ์์ฑ์ ์ง์ ํ๋ค.
2. http://localhost:8000/pybo/question/create ํ์ด์ง๋ฅผ ํธ์ถํ๋ค.
# ์๋ ํผ ์์ฑ
1. ์๋ ํผ์ ์์ฑํ๋๋ฐ ํ์ํ์ง ์์ widget ์์ฑ์ projects\mysite\pybo\forms.py ํ์ผ์์ ์ ๊ฑฐํ๋ค.
2. projects\mysite\templates\pybo\question_form.html ํ์ผ์ ์ง๋ฌธ ๋ฑ๋ก ํ ํ๋ฆฟ์ ์๋์ฒ๋ผ ์์
+ ์ ๋ชฉ, ๋ด์ฉ์ ํด๋น๋๋ HTML์ฝ๋๋ฅผ ์ง์ ์์ฑํจ ( Line 22, 27 )
+ question_create ํจ์์์ form.is_valid() ๊ฐ ์คํจํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์ค๋ฅ ๋ด์ฉ์ ํ์ํ๊ธฐ ์ํด ์ค๋ฅ๋ฅผ ํ์ํ๋ ์์ญ์ ์ถ๊ฐ (Line 7 ~ 19)
+ ์ ๋ชฉ(subject) ํญ๋ชฉ์ value์ {{ form.subject.value|default_if_none:'' }} ์ฒ๋ผ ๊ฐ ๋์ --> ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ๊ธฐ์กด์ ์ ๋ ฅํ๋ ๊ฐ์ ์ ์งํ๊ธฐ ์ํจ ( Line 24 )
+ |default_if_none:'' --> ํผ ๋ฐ์ดํฐ(form.subject.value)์ ๊ฐ์ด ์์ ๊ฒฝ์ฐ None ์ด๋ผ๋ ๋ฌธ์์ด์ด ํ์๋๋๋ฐ, ์ด๋ None ์ด ์๋ ๊ณต๋ฐฑ์ผ๋ก ํ์ํ๋ผ๋ ์๋ฏธ์ ํ ํ๋ฆฟ ํํฐ
+ ์ฅ๊ณ ์ ํ ํ๋ฆฟ ํํฐ๋ |default_if_none:'' ์ฒ๋ผ | ๊ธฐํธ์ ํจ๊ป ์ฌ์ฉ๋จ
3. http://localhost:8000/pybo/question/create/ ํ์ด์ง ํธ์ถ --> ์ ๋ชฉ์๋ง ๋ด์ฉ์ ์ ๋ ฅํ๊ณ ๋ด์ฉ ๋ถ๋ถ์ ๋น์๋๋ค. --> ์ ์ฅํ๊ธฐ ํด๋ฆญ
# ๋ต๋ณ ๋ฑ๋ก
1. projects\mysite\pybo\forms.py ํ์ผ์ AnswerForm ์ ์๋์ ๊ฐ์ด ์์ฑ
2. projects\mysite\pybo\views.py ํ์ผ์ answer_create ํจ์๋ฅผ ์๋์ฒ๋ผ ์์
+ question_create์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก AnswerForm์ ์ด์ฉํ๋๋ก ๋ณ๊ฒฝ
+ ๋ต๋ณ ๋ฑ๋ก์ POST ๋ฐฉ์๋ง ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ GET ๋ฐฉ์์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ์๋ HttpResponseNotAllowed ์ค๋ฅ๊ฐ ๋ฐ์ํ๋๋ก ์์ฑ (Line 27, 28)
3. projects\mysite\templates\pybo\question_detail.html ํ์ผ์ ์ง๋ฌธ ์์ธ ํ ํ๋ฆฟ์ ์ค๋ฅ ํ์๋ฅผ ์ํ ์์ญ ์ถ๊ฐ
4. http://localhost:8000/pybo/4/ ํ์ด์ง ํธ์ถ --> ๋ต๋ณ ๋ด์ฉ์ ์ฐ์ง ์๊ณ ๋ต๋ณ๋ฑ๋ก ๋ฒํผ ํด๋ฆญ --> ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธ
'โ๏ธ Python Programming > Frameworks' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
< django - 15 > (0) | 2022.08.06 |
---|---|
< django - 14 > (0) | 2022.08.05 |
< django - 12 > (0) | 2022.08.05 |
< django - 11 > (0) | 2022.08.04 |
< django - 10 > (0) | 2022.08.04 |