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_fields
๋ฅผ ์ฌ์ฉํด ์ธ๋ ํค ํ๋๋ฅผ '์ฝ๊ธฐ ์ ์ฉ ํ๋'๋ก ์ค์
โ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์์ ์ 'ํด๋น ํ๋๋ฅผ ์ ํจ์ฑ ๊ฒ์ฌ์์ ์ ์ธ์ํค๊ณ ๋ฐ์ดํฐ ์กฐํ ์์ ์ถ๋ ฅ'ํ๋๋ก ํ๋ค.
- ๋ค์ ์๋ต ํ์ธํด๋ณด๊ธฐ
DELETE & PUT
- view ํจ์ ์์ฑ
- delete ์๋ต ํ์ธ
- put ์๋ต ํ์ธ
N:1 ์ญ์ฐธ์กฐ ๋ฐ์ดํฐ ์กฐํ
- ํน์ ๊ฒ์๊ธ์ ์์ฑ๋ ๋๊ธ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
- ๊ธฐ์กด ํ๋ override
- ํน์ ๊ฒ์๊ธ์ ์์ฑ๋ ๋๊ธ์ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ
- ์๋ก์ด ํ๋ ์ถ๊ฐ
ํน์ ๊ฒ์๊ธ์ ์์ฑ๋ ๋๊ธ ๋ชฉ๋ก ์ถ๋ ฅํ๊ธฐ
PrimaryKeyRelatedField()
- Nested relationships(์๋ก์ด ํ๋ ์์ฑ)
โ comment์ ์์ธํ ๋ด์ฉ๊น์ง ํ์ธํ ์ ์๋ค.
ํน์ ๊ฒ์๊ธ์ ์์ฑ๋ ๋๊ธ์ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ
- ์๋ก์ด ํ๋ ์ถ๊ฐ
Article Detail
- ์๋ต ํ์ธ
[์ฃผ์] ์ฝ๊ธฐ ์ ์ฉ ํ๋ ์ง์
โ ํน์ ํ๋๋ฅผ override ํน์ ์ถ๊ฐํ ๊ฒฝ์ฐ read_only_fields
๊ฐ ์๋ํ์ง ์๋๋ค.
Django shortcuts functions
get_object_or_404()
โ managers objects์์ get()
์ ํธ์ถํ์ง๋ง, ํด๋น ๊ฐ์ฒด๊ฐ ์์ ๋ HTTP404๋ฅผ ์ผ์ผํจ๋ค.
get_list_or_404()
โ managers objects์์ filter()
์ ํธ์ถํ์ง๋ง, ํด๋น ๊ฐ์ฒด๊ฐ ์์ ๋ HTTP404๋ฅผ ์ผ์ผํจ๋ค.
์ ์ฌ์ฉํด์ผ ๋ ๊น?
โ ํด๋ผ์ด์ธํธ ์ ์ฅ์์ '์๋ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์์ฒญ์ ์ํํ ์ ์๋ค(500)'๋ผ๋ ์์ธ์ด ์ ํํ์ง ์์ ์๋ฌ๋ฅผ ๋ง์ฃผํ๊ธฐ๋ณด๋ค๋, ์๋ฒ๊ฐ ์ ์ ํ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ฌ๋ฐ๋ฅธ ์๋ฌ๋ฅผ ์ ๋ฌํ๋ ๊ฒ ๋ํ ์ค์!
'โญ Personal_Study > Django' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DynamicFieldsModelSerializer (0) | 2022.11.06 |
---|---|
Django REST framework - Single Model (0) | 2022.10.26 |
Django: Response JSON (0) | 2022.10.25 |
(M:N) User- User Relationship (0) | 2022.10.18 |
(M:N) Article - User Relationship (0) | 2022.10.17 |
๋๊ธ