23. ๊ฒ์ ๊ธฐ๋ฅ๊ณผ GET + ๊ฒ์ ํผ + ํ์ด์ง + ๊ฒ์ ์คํฌ๋ฆฝํธ์ ๊ฒ์ ํจ์
# ๊ฒ์ ํ๋ฉด ๋ฐ ๊ฒ์ ์ฐฝ
- projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด์ด ํ ํ๋ฆฟ์ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ ์ ์๋ ํ ์คํธ์ฐฝ ์ถ๊ฐ
+ ์ง๋ฌธ ๋ฑ๋กํ๊ธฐ ๋ฒํผ์ ๊ฒ์์ฐฝ์ ์ผ์ชฝ์ผ๋ก ์ด๋
+ Line 11์ id="search_kw"
--> ์๋ฐ ์คํฌ๋ฆฝํธ์์ ์ด ํ ์คํธ์ฐฝ์ ์ ๋ ฅ๋ ๊ฐ์ ์ฝ๊ธฐ ์ํด id์์ฑ ์ถ๊ฐ
# ๊ฒ์ ํผ
- projects\mysite\templates\pybo\question_list.html ์ ์ด๊ณ page, kw๋ฅผ ๋์์ GET์ผ๋ก ์์ฒญํ ์ ์๋ searchForm ์ถ๊ฐ
+ << Line 90 >>
: method ์์ฑ์ "get" ์ค์ --> GET ๋ฐฉ์์ผ๋ก ์์ฒญํด์ผ ํ๊ธฐ ๋๋ฌธ
: action ์์ฑ์ ํผ์ด ์ ์ก๋๋ URL --> ์ง๋ฌธ ๋ชฉ๋ก URL์ธ {% url 'index' %} ์ง์
+ Line 91์ kw์ 92์ page ์ ๊ฒฝ์ฐ ์ด์ ์ ์์ฒญํ๋ ๊ฐ์ ๊ธฐ์ตํ๊ณ ์์ด์ผ ํ๊ธฐ์ value ์ ๊ฐ ๋์ --> ์ด์ ์ ์์ฒญ๋ kw, page ๊ฐ์ index ํจ์๋ก๋ถํฐ ์ ๋ฌ๋จ
# ํ์ด์ง
- projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด๊ณ ์ง์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฝ๋ฉํ๋ ๋ฐฉ์์์ ๊ฐ์ ์ฝ์ด ํผ์ ์ค์ ํ ์ ์๋๋ก, ํ์ด์ง ์ฒ๋ฆฌ ๋ถ๋ถ์ ์๋์ฒ๋ผ ์์
+ ๋ชจ๋ ํ์ด์ง ๋งํฌ๋ฅผ href ์์ฑ์ ์ง์ ์ ๋ ฅํ์ง ์๊ณ ๋ data-page ์์ฑ์ผ๋ก ๊ฐ์ ์ฝ์ด๋ค์ผ ์ ์๋๋ก ์ค์
# ๊ฒ์ ์คํฌ๋ฆฝํธ
- projects\mysite\templates\pybo\question_list.html ํ์ผ์ ์ด์ด page, kw ํ๋ผ๋ฏธํฐ๋ฅผ ๋์์ ์์ฒญํ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ถ๊ฐ
+ Line 101 ~ 107์ ์คํฌ๋ฆฝํธ๋ ์๋ ๊ณผ์ ์ค searchForm ์ ์์ฒญํ๋ ๊ณผ์ ์์ ํ์ํจ
: ์์์ ์์ฑํ class ์์ฑ๊ฐ์ผ๋ก "page-link"๋ผ๋ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋งํฌ๋ฅผ ํด๋ฆญ --> ๊ทธ ๋งํฌ์ data-page ์์ฑ๊ฐ์ ์ฝ์ด searchForm์ page ํ๋์ ์ค์ --> searchForm์ ์์ฒญ
+ Line 111์ value = 1;
: ๊ฒ์ ๋ฒํผ์ ๋๋ฅด๋ ๊ฒฝ์ฐ๋ ์๋ก์ด ๊ฒ์์ ํด๋นํ๊ธฐ ๋๋ฌธ์ 1 ์ค์
# ๊ฒ์ ํจ์
1. projects\mysite\pybo\views\base_views.py ํ์ผ์ ์ด์ด ํ๋ฉด์์ ์์ฒญํ ๊ฒ์์ด๊ฐ ์ง๋ฌธ ๋ชฉ๋ก ์กฐํ์ ์ ์ฉ๋ ์ ์๋๋ก base_views.py์ index ํจ์๋ฅผ ์๋์ฒ๋ผ ์์
+ Line 14, 15์ subject__icontains=kw
--> ์ ๋ชฉ์ kw ๋ฌธ์์ด์ด ํฌํจ๋์๋์ง ์ฌ๋ถ๋ฅผ ์๋ฏธ
+ Line 18์ answer__author__username__icontains
--> "๋ต๋ณ์ ์์ฑํ ์ฌ๋์ ์ด๋ฆ์ ํฌํจ๋๋๊ฐ?" ์ ์๋ฏธ
+ filter ํจ์์์๋ ์ธ๋๋ฐ 2๊ฐ(__)๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ ์์ฑ์ ์ ๊ทผ ๊ฐ๋ฅ
+ Line 22์ 'page': page, 'kw': kw
--> page์ kw๋ฅผ ํ ํ๋ฆฟ์ ์ ๋ฌํ๊ธฐ ์ํด context ๋์ ๋๋ฆฌ์ ์ถ๊ฐ
+ subject__contains=kw ๋์ subject__icontains=kw์ ์ฌ์ฉํ๋ฉด ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด ๊ฒ์ ๊ฐ๋ฅ
2. http://localhost:8000/pybo/ ํ์ด์ง๋ฅผ ํธ์ถํ ํ ๊ฒ์ ๊ธฐ๋ฅ ํ์ธ
'โ๏ธ Python Programming > Frameworks' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
< django - 22 > (0) | 2022.08.23 |
---|---|
< django - 21 > (0) | 2022.08.22 |
< django - 20 > (0) | 2022.08.17 |
< django - 19 > (0) | 2022.08.15 |
< django - 18 > (0) | 2022.08.07 |