Django-rest-framework: ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ์˜ ์ˆœํ™˜ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ œ๊ณต

์— ๋งŒ๋“  2020๋…„ 06์›” 18์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: encode/django-rest-framework

๋‘˜ ๋‹ค ์„œ๋กœ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“ˆ์ด ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋“ˆ ์‚ฌ์šฉ์ž ๋ฐ ๊ฒŒ์‹œ๋ฌผ. ์‚ฌ์šฉ์ž์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๊ณ  ๊ฒŒ์‹œ๋ฌผ์—๋Š” ๊ฒŒ์‹œ๋ฌผ ๋ฐ ์ฒจ๋ถ€ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

# users
class UserSerializer:
    posts = PostSerializer()
    profile_attachments = AttachmentSerializer()


#posts
class PostSerializer:
    user = StringSerializer()
    attachments = AttachmentSerializer()

class AttachmentSerializer:
    name = CharField()
    size = IntegerField()

Django์—๋Š” ์ฐธ์กฐ ๋ชจ๋ธ์„ ๋ฌธ์ž์—ด๋กœ ์„ ์–ธํ•˜์—ฌ ์ˆœํ™˜ ์ข…์†์„ฑ์„ ํ”ผํ•˜๋Š” ์™ธ๋ž˜ ํ‚ค ๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

profile_attachment = models.ForeignKey('posts.Attachment', on_delete=models.CASCADE)

DRF๊ฐ€ ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ์— ๋Œ€ํ•ด ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ™์€ ๊ฒƒ

profile_attachment = ModelSerializer(serializer='posts.AttachmentSerializer')

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…• mrodal!

"์ˆœํ™˜" ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ ์ค‘ ํ•˜๋‚˜์—์„œ ๋‹ค์Œ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. DRF: ์—ญ ๊ด€๊ณ„
Django: ๊ด€๊ณ„๋ฅผ "๋’ค๋กœ" ๋”ฐ๋ผ๊ฐ€๊ธฐ

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฝค ๋ณต์žกํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐ ์•„ํ‚คํ…์ฒ˜ ๊ณผ์ •์—์„œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹จ๋ฐฉํ–ฅ ์ข…์†์„ฑ์„ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ ์–ด๋„. ๋‘ ์•ฑ ์‚ฌ์ด์— ๋งค์šฐ ๊ธด๋ฐ€ํ•œ ๊ฒฐํ•ฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ์•ฑ์ด์–ด์•ผ ํ•˜๋ฉฐ, ๋Œ€์•ˆ์ ์œผ๋กœ ๊ณตํ†ต ๋ถ€๋ชจ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ๋ฅผ ํ•˜์œ„ ์•ฑ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ AFAIK๊ฐ€ ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฌดํ•œ ๋ฃจํ”„๋กœ ๋๋‚˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰