15. ํ ํ๋ฆฟ ํํฐ ์์ฑ ๋ฐ ์ฌ์ฉ + ๊ฒ์๋ฌผ ๋ฒํธ์ ์ค๋ฅ ํด๊ฒฐ + ๋ต๋ณ ๊ฐ์ ํ์
# ํ ํ๋ฆฟ ํํฐ
: ํ ํ๋ฆฟ ํ๊ทธ์์ | ๋ฌธ์ ๋ค์ ์ฌ์ฉํ๋ ํํฐ
ex. {{ form.subject.value|default_if_none:'' }}
# ๊ฒ์๋ฌผ ๋ฒํธ ์ค๋ฅ
: http://localhost:8000/pybo/ ๋ฅผ ํธ์ถํ์ ๋ ์๋ ์ฌ์ง์ฒ๋ผ ๊ฒ์๋ฌผ์ ๋ฒํธ๊ฐ ํญ์ 1๋ถํฐ ์์ํ๋ค๋ ๋ฌธ์ ๋ฐ์. (ํ์ด์ง๋ 3์ธ๋ฐ ๊ฒ์๋ฌผ์ 1๋ถํฐ ์์ํ๋ค......)
# ๊ฒ์๋ฌผ ๋ฒํธ
: ๋ง์ฝ ๊ฒ์๋ฌผ ์ ์ฒด ๊ฑด์๊ฐ 12๊ฐ๋ผ๋ฉด, ์ฒซ๋ฒ์งธ ํ์ด์ง๋ ๋ฒํธ๊ฐ 12~3๊น์ง ์ญ์์ผ๋ก ๋ณด์ฌ์ง๊ณ ๋๋ฒ์งธ ํ์ด์ง์๋ 2~1๊น์ง ๋ณด์ฌ์ ธ์ผ ํจ --> ๋ฒํธ = ์ ์ฒด๊ฑด์ - ์์์ธ๋ฑ์ค - ํ์ฌ์ธ๋ฑ์ค + 1
ex. ์ ์ฒด ๊ฒ์๋ฌผ ๊ฐ์๊ฐ 12, ํ์ด์ง๋น 10๊ฑด์ฉ ๊ฒ์๋ฌผ์ ๋ณด์ฌ ์ค๋ค๊ณ ๊ฐ์ --> 1ํ์ด์ง์ ๋ฒํธ๋ 12 - 1 - (0~9 ๋ฐ๋ณต) + 1 ์ด ๋์ด 12~3๊น์ง ํ์๋๊ณ , 2ํ์ด์ง์ ๊ฒฝ์ฐ์๋ 12 - 11 - (0~1 ๋ฐ๋ณต) + 1 ์ด ๋์ด 2~1์ด ํ์๋จ
- ์์ ์ธ๋ฑ์ค : ํ์ด์ง๋น ์์๋๋ ๊ฒ์๋ฌผ์ ์์ ๋ฒํธ
ex. ํ์ด์ง๋น ๊ฒ์๋ฌผ์ 10๊ฑด์ฉ ๋ณด์ฌ์ค๋ค๋ฉด, 1ํ์ด์ง์ ์์ ์ธ๋ฑ์ค๋ 1์ด๊ณ 2ํ์ด์ง์ ์์ ์ธ๋ฑ์ค๋ 11์
- ํ์ฌ ์ธ๋ฑ์ค : ํ์ด์ง์ ๋ณด์ฌ์ง๋ ๊ฒ์๋ฌผ ๊ฐ์๋งํผ 0๋ถํฐ 1์ฉ ์ฆ๊ฐ๋๋ ๋ฒํธ
- ํ ํ๋ฆฟ์์ ๋ฒํธ = ์ ์ฒด๊ฑด์ - ์์์ธ๋ฑ์ค - ํ์ฌ์ธ๋ฑ์ค + 1 ๊ณต์์ ์ฌ์ฉํ๋ ค๋ฉด ๋นผ๊ธฐ ๊ธฐ๋ฅ์ด ํ์ --> ์ฅ๊ณ ์๋ ๋นผ๊ธฐ ๊ธฐ๋ฅ์ด X --> ์ง์ ์์ฑํด์ผ ํจ
+ ์ง๋ฌธ!
Q. |add:-3์ ๊ฐ์ด ์ซ์๋ฅผ ์ง์ ์ ๋ ฅํ๋ค๋ฉด ๋ํ๊ธฐ ํํฐ๋ฅผ ์ด์ฉํ์ฌ ์ํ๋ ๊ฐ์ ๋บ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค ์ ์์ง ์๋์?
A. add ํํฐ๋ ์ธ์๋ก ์ซ์๋ง ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๋ณ์๋ ์ ์ฉ์ด ๋ถ๊ฐํ๊ธฐ์ ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ X
# ํ ํ๋ฆฟ ํํฐ ์์ฑํ๊ธฐ
1. ํ ํ๋ฆฟ ํํฐ ํ์ผ์ ์ ์ฅํ templatetags ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
2. templatetags ๋๋ ํฐ๋ฆฌ์ pybo_filter.py ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑ
+ << Line 6 >>
: sub ํจ์์ @register.filter ์ ๋ํ ์ด์ ์ ์ ์ฉํ๋ฉด ํ ํ๋ฆฟ์์ ํด๋น ํจ์๋ฅผ ํํฐ๋ก ์ฌ์ฉํ ์ O
+ sub ํจ์ : ๊ธฐ์กด ๊ฐ value์์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ฐ arg๋ฅผ ๋นผ์ ๋ฆฌํดํ๋ ํจ์
# ํ ํ๋ฆฟ ํํฐ ์ฌ์ฉ + ๊ฒ์๋ฌผ ๋ฒํธ ์ค๋ฅ ํด๊ฒฐ
1. projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ง๋ฌธ ๋ชฉ๋ก ํ ํ๋ฆฟ์ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝ
+ ๋ฒํธ = ์ ์ฒด๊ฑด์ - ์์์ธ๋ฑ์ค - ํ์ฌ์ธ๋ฑ์ค + 1 ๊ณต์์ด ์ ์ฉ๋จ
+ << Line 19 >>
: ๊ณต์ ๋์ ์ฝ๋
๊ณต์ | ์ฝ๋ |
์ ์ฒด ๊ฑด์ | question_list.paginator.count |
์์ ์ธํ ์ค | question_list.start_index |
ํ์ฌ ์ธ๋ฑ์ค | forloop.counter0 |
2. ๋ค์ http://localhost:8000/pybo/ ํ์ด์ง ํธ์ถ
# ๋ต๋ณ ๊ฐ์ ํ์
1. projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์๋์ ๊ฐ์ด ์์
+ << Line 23 >>
: {% if question.answer_set.count > 0 %} --> ๋ต๋ณ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฒ์ฌ
+ << Line 24 >>
: {{ question.answer_set.count }} --> ๋ต๋ณ ๊ฐ์ ํ์
2. http://localhost:8000/pybo/ ํ์ด์ง๋ฅผ ํธ์ถ
'โ๏ธ Python Programming > Frameworks' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
< django - 17 > (0) | 2022.08.07 |
---|---|
< django - 16 > (0) | 2022.08.06 |
< django - 14 > (0) | 2022.08.05 |
< django - 13 > (0) | 2022.08.05 |
< django - 12 > (0) | 2022.08.05 |