๊ณผ์
- args, kwargs๋ฅผ ์ฌ์ฉํ๋ ์์ ์ฝ๋ ์ง๋ณด๊ธฐ
- mutable๊ณผ immutable์ ์ด๋ค ํน์ฑ์ด ์๊ณ , ์ด๋ค ์๋ฃํ์ด ์ด๋์ ํด๋นํ๋์ง ์์ ํ๊ธฐ
- DB Field์์ ์ฌ์ฉ๋๋ Key ์ข ๋ฅ์ ํน์ง ์์ ํ๊ธฐ
- django์์ queryset๊ณผ object๋ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์ ํ๊ธฐ
์ ์ถ ํ์ผ
drf1.py
๊ณผ์
- Django ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , user ๋ผ๋ ์ฑ์ ๋ง๋ค์ด์ settings.py ์ ๋ฑ๋กํด๋ณด์ธ์.
- user/models.py์
Custom user model
์ ์์ฑํ ํ django์์ user table์ ์์ฑ ํ ๋ชจ๋ธ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํด์ฃผ์ธ์ - user/models.py์ ์ฌ์ฉ์์ ์์ธ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋
UserProfile
์ด๋ผ๋ ๋ชจ๋ธ์ ์์ฑํด์ฃผ์ธ์ - blog๋ผ๋ ์ฑ์ ๋ง๋ ํ settings.py์ ๋ฑ๋กํด์ฃผ์ธ์
- blog/models.py์ <์นดํ
๊ณ ๋ฆฌ ์ด๋ฆ, ์ค๋ช
>์ด ๋ค์ด๊ฐ ์ ์๋
Category
๋ผ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด๋ณด์ธ์. - blog/models.py์ <๊ธ ์์ฑ์, ๊ธ ์ ๋ชฉ, ์นดํ
๊ณ ๋ฆฌ, ๊ธ ๋ด์ฉ>์ด ๋ค์ด๊ฐ ์ ์๋
Article
์ด๋ผ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด๋ณด์ธ์.(์นดํ ๊ณ ๋ฆฌ๋ 2๊ฐ ์ด์ ์ ํํ ์ ์์ด์ผ ํด์) - Article ๋ชจ๋ธ์์ ์ธ๋ ํค๋ฅผ ํ์ฉํด์ ์์ฑ์์ ์นดํ ๊ณ ๋ฆฌ์ ๊ด๊ณ๋ฅผ ๋งบ์ด์ฃผ์ธ์
- admin.py์ ๋ง๋ค์๋ ๋ชจ๋ธ๋ค์ ์ถ๊ฐํด ์ฌ์ฉ์์ ๊ฒ์๊ธ์ ์์ ๋กญ๊ฒ ์์ฑ, ์์ ํ ์ ์๋๋ก ์ค์ ํด์ฃผ์ธ์
- CBV ๊ธฐ๋ฐ์ผ๋ก ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
- CBV ๊ธฐ๋ฐ์ผ๋ก ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ๊ฒ์๊ธ์ ์ ๋ชฉ์ ๋ฆฌํดํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
๊ณผ์
- blog ์ฑ์ <๊ฒ์๊ธ, ์ฌ์ฉ์, ๋ด์ฉ>์ด ํฌํจ๋ comment ํ ์ด๋ธ์ ์์ฑํด์ฃผ์ธ์
- ์ธ๋ ํค๋ฅผ ์ฌ์ฉํด์ Article, User ํ ์ด๋ธ๊ณผ ๊ด๊ณ๋ฅผ ๋งบ์ด์ฃผ์ธ์
- admin.py์ comment๋ฅผ ์ถ๊ฐํด ์์ ๋กญ๊ฒ ์์ฑ, ์์ ํ ์ ์๋๋ก ํด์ฃผ์ธ์
- serializer๋ฅผ ํ์ฉํด ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์ ๋ณด์ ์์ธ ์ ๋ณด๋ฅผ ๋ฆฌํดํด ์ฃผ๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ฃผ์ธ์
- 4๋ฒ์ serializer์ ์ถ๊ฐ๋ก ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ๊ฒ์๊ธ, ๋๊ธ์ ๋ฆฌํดํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
- blog ์ฑ์ title / category / contents๋ฅผ ์ ๋ ฅ๋ฐ์์ ๊ฒ์๊ธ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
- ๋ง์ฝ title์ด 5์ ์ดํ๋ผ๋ฉด ๊ฒ์๊ธ์ ์์ฑํ ์ ์๋ค๊ณ ๋ฆฌํดํด์ฃผ์ธ์
- ๋ง์ฝ contents๊ฐ 20์ ์ดํ๋ผ๋ฉด ๊ฒ์๊ธ์ ์์ฑํ ์ ์๋ค๊ณ ๋ฆฌํดํด์ฃผ์ธ์
- ๋ง์ฝ ์นดํ ๊ณ ๋ฆฌ๊ฐ ์ง์ ๋์ง ์์๋ค๋ฉด ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ง์ ํด์ผ ํ๋ค๊ณ ๋ฆฌํดํด์ฃผ์ธ์
- custom permission class๋ฅผ ํ์ฉํด ๊ฐ์ ํ 3์ผ ์ด์ ์ง๋ ์ฌ์ฉ์๋ง ๊ฒ์๊ธ์ ์ธ ์ ์๋๋ก ํด์ฃผ์ธ์
- ํ ์คํธ ํ ๋์๋ ๊ฐ์ ํ 3๋ถ ์ด์ ์ง๋ ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ์ ์ธ ์ ์๊ฒ ํด์ฃผ์ธ์
- join_date๋ datetime field๋ก ๋ง๋ค์ด์ฃผ์ธ์
๊ณผ์
- admin ํ์ด์ง์ user admin์ ๋ฑ๋กํ๊ณ , userprofile ํ ์ด๋ธ์ user admin ํ์ด์ง์์ ๊ฐ์ด ๋ณด๊ณ ์ค์ ํ ์ ์๋๋ก ํด์ฃผ์ธ์
- article ํ ์ด๋ธ์ <๋ ธ์ถ ์์ ์ผ์, ๋ ธ์ถ ์ข ๋ฃ ์ผ์>๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์
- article view์ ๊ฒ์๊ธ ์กฐํ ๊ธฐ๋ฅ์ ๋ง๋ค๋, ํ์ฌ ์ผ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ธ์ถ ์์ ์ผ์์ ๋ ธ์ถ ์ข ๋ฃ ์ผ์ ์ฌ์ด์ ์๋ ํญ๋ชฉ๋ค๋ง ๋ฆฌํดํด์ฃผ๋๋ก ํํฐ๋ฅผ ์ค์ ํด์ฃผ์ธ์
- ๋ฆฌํด ๋ฐ์ดํฐ๋ ๊ฒ์๊ธ ์์ฑ์ผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ์ต๊ทผ ์ด ๊ธ์ด ๊ฐ์ฅ ๋จผ์ ์ฌ๋ผ์ค๋๋ก ํด์ฃผ์ธ์
- ๊ธฐ์กด article ์์ฑ ๊ธฐ๋ฅ์ ์ ์งํ๋, article์ admin user ํน์ ๊ฐ์ ํ 7์ผ์ด ์ง๋ ์ฌ์ฉ์๋ง ์์ฑ ๊ฐ๋ฅํ๋๋ก ํด์ฃผ์ธ์
- ์กฐํ๋ ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ๋ํด์๋ง ๊ฐ๋ฅํ๋๋ก ์ค์ ํด์ฃผ์ธ์
๊ณผ์
-
product๋ผ๋ ์ฑ์ ์๋ก ์์ฑํด์ฃผ์ธ์
-
product ์ฑ์์ <์์ฑ์, ์ ๋ชฉ, ์ธ๋ค์ผ, ์ค๋ช , ๋ฑ๋ก์ผ์, ๋ ธ์ถ ์์ ์ผ, ๋ ธ์ถ ์ข ๋ฃ์ผ>๊ฐ ํฌํจ๋ product ํ ์ด๋ธ์ ์์ฑํด์ฃผ์ธ์
-
django serializer์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ validate / create / update ๊ธฐ๋ฅ์ ์ฌ์ฉํด event ํ ์ด๋ธ์ ์์ฑ/์์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
- postman์ผ๋ก ํ์ผ์ ์ ๋ก๋ ํ ๋๋ raw ๋์ form-data๋ฅผ ์ฌ์ฉํ๊ณ , Key type์ File๋ก ์ค์ ํด์ฃผ์ธ์
-
๋ฑ๋ก๋ ์ด๋ฒคํธ ์ค ํ์ฌ ์๊ฐ์ด ๋ ธ์ถ ์์ ์ผ๊ณผ ๋ ธ์ถ ์ข ๋ฃ ์ผ์ ์ฌ์ด์ ์๊ฑฐ๋, ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์๊ฐ ์์ฑํ product ์ฟผ๋ฆฌ์ ์ ์ง๋ ฌํ ํด์ ๋ฆฌํดํด์ฃผ๋ serializer๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์
-
product field๋ฅผ admin์์ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ฑ๋กํด์ฃผ์ธ์
๊ณผ์
- product ์ฑ์ product ํ ์ด๋ธ ๊ตฌ์ฑ์ <์์ฑ์, ์ธ๋ค์ผ, ์ํ ์ค๋ช , ๋ฑ๋ก์ผ์, ๋ ธ์ถ ์ข ๋ฃ ์ผ์, ๊ฐ๊ฒฉ, ์์ ์ผ์, ํ์ฑํ ์ฌ๋ถ>๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์
- django serializer๋ฅผ ์ฌ์ฉํด validate / create / update ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์
- custom validation ๊ธฐ๋ฅ์ ์ฌ์ฉํด ๋ ธ์ถ ์ข ๋ฃ ์ผ์๊ฐ ํ์ฌ๋ณด๋ค ๋ ์ด์ ์์ ์ด๋ผ๋ฉด ์ํ์ ๋ฑ๋กํ ์ ์๋๋ก ํด์ฃผ์ธ์
- custom creator ๊ธฐ๋ฅ์ ์ฌ์ฉํด ์ํ ์ค๋ช ์ ๋ง์ง๋ง์ "<๋ฑ๋ก ์ผ์>์ ๋ฑ๋ก๋ ์ํ์ ๋๋ค." ๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์
- custom update ๊ธฐ๋ฅ์ ์ฌ์ฉํด ์ํ์ด update ๋์ ๋ ์ํ ์ค๋ช ์ ๊ฐ์ฅ ์ฒซ์ค์ "<์์ ์ผ์>์ ์์ ๋์์ต๋๋ค." ๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์
- product ์ฑ์์ <์์ฑ์, ์ํ, ๋ด์ฉ, ํ์ , ์์ฑ์ผ>์ ๋ด๊ณ ์๋ review ํ ์ด๋ธ์ ๋ง๋ค์ด์ฃผ์ธ์
- review ํ ์ด๋ธ์ ๊ด๋ฆฌ์ ํ์ด์ง์์ ์์ ๋กญ๊ฒ ์ถ๊ฐ/์์ ํ ์ ์๋๋ก ์ค์ ํด์ฃผ์ธ์
- ํ์ฌ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก, ๋ ธ์ถ ์ข ๋ฃ ๋ ์ง๊ฐ ์ง๋์ง ์์๊ณ ํ์ฑํ ์ฌ๋ถ๊ฐ True์ด๊ฑฐ๋ ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์๊ฐ ๋ฑ๋ก ํ ์ํ๋ค์ ์ ๋ณด๋ฅผ serializer๋ฅผ ์ฌ์ฉํด ๋ฆฌํดํด์ฃผ์ธ์
- 5๋ฒ ์ํ ์ ๋ณด๋ฅผ ๋ฆฌํด ํ ๋ ์ํ์ ๋ฌ๋ฆฐ review์ ํ๊ท ์ ์๋ฅผ ํจ๊ป ๋ฆฌํดํด์ฃผ์ธ์
- ํ๊ท ์ ์๋ (๋ฆฌ๋ทฐ ํ์ ์ ํฉ/๋ฆฌ๋ทฐ ๊ฐฏ์)๋ก ๊ตฌํด์ฃผ์ธ์
- ์์ฑ ๋ ๋ฆฌ๋ทฐ๋ ๋ชจ๋ returnํ๋ ๊ฒ์ด ์๋, ๊ฐ์ฅ ์ต๊ทผ ๋ฆฌ๋ทฐ 1๊ฐ๋ง ๋ฆฌํดํด์ฃผ์ธ์
- ๋ก๊ทธ์ธ ํ์ง ์์ ์ฌ์ฉ์๋ ์ํ ์กฐํ๋ง ๊ฐ๋ฅํ๊ณ , ํ์๊ฐ์
์ดํ 3์ผ ์ด์ ์ง๋ ์ฌ์ฉ์๋ง ์ํ์ ๋ฑ๋ก ํ ์ ์๋๋ก ๊ถํ์ ์ค์ ํด์ฃผ์ธ์