๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/Django

(N:1) Article - User Relationship

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 10. 9.

Django Relationship fields (N:1) (Article - User)

User ๋ชจ๋ธ ์ฐธ์กฐ

Django ์—์„œ User ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. settings.AUTH_USER_MODEL
  2. get_user_model()

1. settings.AUTH_USER_MODEL

โœ” ๋ฐ˜ํ™˜๊ฐ’: 'accounts.User' (๋ฌธ์ž์—ด)
โœ” User ๋ชจ๋ธ์— ๋Œ€ํ•œ ์™ธ๋ž˜ ํ‚ค ๋˜๋Š” M:N ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ๋–„ ์‚ฌ์šฉ
โœ” models.py์˜ ๋ชจ๋ธ ํ•„๋“œ์—์„œ User ๋ชจ๋ธ์„ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ

2. get_user_model()

โœ” ๋ฐ˜ํ™˜๊ฐ’: User Object(๊ฐ์ฒด)
โœ” ํ˜„์žฌ ํ™œ์„ฑํ™”๋œ User ๋ชจ๋ธ ๋ฐ˜ํ™˜
โœ” models.py ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ณณ์—์„œ ์œ ์ € ๋ชจ๋ธ์„ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ

๋ชจ๋ธ ๊ด€๊ณ„ ์„ค์ •

image

1. model.py

image

2. makemigrations

image

โœ” 1 ๋ฒˆ (๊ธฐ๋ณธ๊ฐ’ ์ง์ ‘ ์ถ”๊ฐ€)

3. ๊ธฐ๋ณธ๊ฐ’ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

image

โœ” (์ž„์˜์˜)๊ธฐ๋ณธ๊ฐ’ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

4. migrate ์ ์šฉํ•ด์ฃผ๊ธฐ

image

Create

1. ์ด์ „๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋ถˆํ•„์š”ํ•œ user field๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ƒํ™ฉ

image

2. ArticleForm์˜ ์ถœ๋ ฅ ํ•„๋“œ ์ˆ˜์ •

image

3. save์˜ commit ์˜ต์…˜ ํ™œ์šฉํ•ด์„œ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ž ์ •๋ณด ์ €์žฅ

image

Delete

image

โœ” ํ˜„์žฌ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•œ ์‚ฌ๋žŒ์„ ๋น„๊ตํ•˜์—ฌ ๋ณธ์ธ์˜ ๊ฒŒ์‹œ๊ธ€๋งŒ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

Update

1. ์ˆ˜์ •๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ˆ˜์ •์„ ์š”์ฒญํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฒŒ์‹œ๊ธ€์ฆ ์ž‘์„ฑํ•œ ์‚ฌ๋žŒ์„ ๋น„๊ตํ•˜์—ฌ ๋ณธ์ธ์˜ ๊ฒŒ์‹œ๊ธ€๋งŒ ์ˆ˜์ •

image

2. ์ถ”๊ฐ€๋กœ ํ•ด๋‹น ๊ธ€์˜ ์ž‘์„ฑ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์ˆ˜์ •/์‚ญ์ œ ๋ฒ„ํŠผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ธฐ

image

Read

์ž‘์„ฑ์ž ์ถœ๋ ฅํ•˜๊ธฐ (index, detail)

image

โœ” user.username์ด ์•„๋‹ˆ๋ผ user๋งŒ ์ถœ๋ ฅํ•ด๋„ ์ž‘์„ฑ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋˜์–ด์žˆ์Œ

๋Œ“๊ธ€