๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โญ Personal_Study/Django10

DynamicFieldsModelSerializer DynamicFieldsModelSerializer ๊ฐœ์š” Django์˜ DjangoRESTFramework(DRF)๋Š” ์ž์ฒด์ ์œผ๋กœ serializer ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ view ํ•จ์ˆ˜์—์„œ ํ•ด๋‹น model์˜ ํŠน์ • field๋งŒ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜, ํ˜น์€ nested relationship์—์„œ ํŠน์ • field๋งŒ ์ƒ์†๋ฐ›๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํ•œ๋‘ ๊ฐœ๋ผ๋ฉด ๋”ฐ๋กœ serializer๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ๋ณ€์ˆ˜๋ช… ์ง“๊ธฐ๋„ ์–ด๋ ค์›Œ์ง„๋‹ค. ๋”ฐ๋ผ์„œ 'field' ์ธ์ž๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•ด ์›ํ•˜๋Š” field๋งŒ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜๋Š” DynamicFieldsModelSerializer ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ Serializer ํด๋ž˜์Šค ์ •์˜ from rest_framework import seri.. 2022. 11. 6.
Django REST framework - N:1 Relation Django REST framework - N:1 Relation GET CommentSerializer ์ƒ์„ฑ GET-List urls, views ์ž‘์„ฑ ์‘๋‹ต ํ™•์ธ GET-Detail urls, views ์ž‘์„ฑ ์‘๋‹ต ํ™•์ธ POST urls, views ์ž‘์„ฑ .save()์˜ ์ธ์ž๊ฐ’ โœ” save() ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • Serializer ์ธ์Šคํ„ด์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์—์„œ ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. โœ” CommentSerializer๋ฅผ ํ†ตํ•ด serialize๋˜๋Š” ๊ณผ์ •์—์„œ ์ธ์ž๋กœ ๋„˜์–ด์˜จ aricle_pk์— ํ•ด๋‹นํ•˜๋Š” article ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋กœ ๋„˜๊ฒจ์„œ ์ €์žฅ โœ” ์ด์ „์˜ ModelForm์˜ commit=False์™€ ์œ ์‚ฌ ์‘๋‹ต ํ™•์ธ, ๊ทธ๋Ÿฌ๋‚˜... โœ” ์—๋Ÿฌ ๋ฐœ์ƒ ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ ์„ค์ • โœ” read_only_fiel.. 2022. 10. 27.
Django REST framework - Single Model Django REST framework - Single Model โœ” ๋‹จ์ผ ๋ชจ๋ธ์˜ data๋ฅผ Serialization ํ•˜์—ฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ตํ•˜๋Š” Django ์„œ๋ฒ„ ๊ตฌ์ถ• ์‚ฌ์ „ ์ค€๋น„ postman ์„ค์น˜ models migrate json ๋”๋ฏธ๋ฐ์ดํ„ฐ loadํ•˜๊ธฐ djangorestframework ์„ค์น˜ํ•˜๊ธฐ ModelSerializer Model Serializer โœ” ๋ชจ๋ธ ํ•„๋“œ์— ํ•ด๋‹นํ•˜๋Š” ํ•„๋“œ๊ฐ€ ์žˆ๋Š” Serializer ํด๋ž˜์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” shortcut์ œ๊ณต Model ์ •๋ณด์— ๋งž์ถฐ ์ž๋™์œผ๋กœ ํ•„๋“œ ์ƒ์„ฑ serializer์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ .create() ๋ฐ .update()์˜ ๊ฐ„๋‹จํ•œ ๊ธฐ๋ณธํ˜• ํฌํ•จ Model Serializer ์ž‘์„ฑํ•˜๊ธฐ shell_plus ์‹คํ–‰ ๋ฐ Arti.. 2022. 10. 26.
Django: Response JSON Response JSON ๊ฐœ์š” โœ” ์„œ๋ฒ„๋Š” ํŽ˜์ด์ง€(html)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค. โœ” JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ตํ•˜๋Š” ์„œ๋ฒ„๋กœ์˜ ๋ณ€ํ™˜ โœ” ํ™”๋ฉด์€ ๋‹ค๋ฅธ Front-end Framework๊ฐ€ ๊ตฌ์„ฑ ์‚ฌ์ „ ์ค€๋น„ migrate ์ง„ํ–‰ (์‚ฌ์ง„ ์ƒ๋žต) ์ค€๋น„๋œ ํŒŒ์ผ loadํ•ด์„œ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ url ์‚ดํŽด๋ณด๊ธฐ Response HTML ์‘๋‹ต JsonResponse()์„ ์‚ฌ์šฉํ•œ JSON ์‘๋‹ต Django Serializer๋ฅผ ์‚ฌ์šฉํ•œ JSON ์‘๋‹ต Djano REST framework๋ฅผ ์‚ฌ์šฉํ•œ JSON ์‘๋‹ต 1. HTML ์‘๋‹ต โœ” ๊ธฐ์กด์— ํ•˜๋˜ ๋ฐฉ์‹ 2. JsonResponse()๋ฅผ ์‚ฌ์šฉํ•œ JSON ์‘๋‹ต โœ” JSON ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 3. Django Serializer๋ฅผ ์‚ฌ์šฉํ•œ JSON ์‘๋‹ต โœ” ๋ชจ๋ธ ๊ตฌ.. 2022. 10. 25.
(M:N) User- User Relationship M:N (Article-User) Profile ๊ตฌํ˜„ํ•˜๊ธฐ urls, views profile.html base.html, index.html์— ํ”„๋กœํ•„ ๋งํฌ ์ถ”๊ฐ€ Follow ๊ตฌํ˜„ํ•˜๊ธฐ ๋ชจ๋ธ ๊ด€๊ณ„ ์„ค์ • urls, views ํ”„๋กœํ•„ ํŽ˜์ด์ง€์—์„œ ํŒ”๋กœ์šฐ/์–ธํŒ”๋กœ์šฐ ๋ฒ„ํŠผ ๊ตฌํ˜„ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ๋ฐ is_authenticated ์ถ”๊ฐ€ 2022. 10. 18.
(M:N) Article - User Relationship M:N (Article-User) Like ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ(model ์ถ”๊ฐ€) ManyToManyField ์ž‘์„ฑ ๊ทธ๋Ÿฌ๋‚˜... โœ” Article๊ณผ User๊ฐ€ ์ด๋ฏธ (N:1) ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œํ•˜๋Š” ํ˜„์ƒ ๋ฐœ์ƒ! โœ” user๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€๋“ค(user.article_set)๊ณผ user๊ฐ€ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅธ ๊ธ€๋“ค(user.article_set)์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๋‹ค. related_name ์ž‘์„ฑ โœ” ์ผ๋ฐ˜์ ์œผ๋กœ N:1 ๊ด€๊ณ„๋Š” ์ž˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  M:N ๊ด€๊ณ„์— related_name์„ ์„ค์ •ํ•ด์ค€๋‹ค. User - Article ๊ฐ„ related manager ์ •๋ฆฌ article.user โœ” ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•œ ์œ ์ € - N:1 user.article_set โœ” ์œ ์ €๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€(์—ญ์ฐธ์กฐ) - N:1 article.like_use.. 2022. 10. 17.