๐Ÿ“’ [ TIL ] 2022.06.29_50์ผ์ฐจ # ์œ ํ™”์ œ์ž‘ drf (2)

๋ฌธ๋ช…์ฃผยท2022๋…„ 6์›” 30์ผ
0

[ 2022-06-29 (์ˆ˜) ์˜ค๋Š˜์˜ TIL ]

[ Today Project ]

์œ ํ™”์ œ์ž‘ ๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ + ํ”„๋ก ํŠธ๊ฐœ๋ฐœ
: ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ํŒ€ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

[ Today Learn ]

  • All article listing
  • article์˜ id์— ํ•ด๋‹น๋˜๋Š” ๊ฒŒ์‹œ๋ฌผ๊ณผ comment listing
  • ๊ทธ๋ฆผํŒ javascript

โœ๏ธ ๋‚ด๊ฐ€ ๋ฐฐ์šด๊ฒƒ, ์–ป์€๊ฒƒ

* ํŽ˜์ด์ง€๋‚ด ์ž์ฒด์— ๊ทธ๋ฆผํŒ ๋งŒ๋“ค๊ธฐ

ํŒ€์˜ ์ฃผ์ œ๊ฐ€ ๊ทธ๋ฆผํŒ์„ ์ด์šฉํ•ด ๋ณธ์ธ์ด ๊ทธ๋ฆฐ ๊ทธ๋ฆผ๊ณผ ๋‹ค๋ฅธ ์‚ฌ์ง„ ๋˜๋Š” ์ž‘ํ’ˆ์„ ์œ ํ™”์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ์„œ๋น„์Šค ์ด์šฉ์ž๋“ค ๊ฐ์ž์˜ ๊ทธ๋ฆผํŒ์„ ํ™œ์šฉํ•˜๊ฒŒ ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ, ๋ณธ์ธ ๋กœ์ปฌ๋กœ ๊ทธ๋ฆผํŒ ์—ด๊ณ  ๊ทธ๋ฆฌ๊ณ  ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ํŽ˜์ด์ง€๋‚ด์—์„œ ์ €์žฅ์‹œํ‚ค๊ณ  ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์•„์˜ˆ ํŽ˜์ด์ง€๋‚ด์— ๊ทธ๋ฆผํŒ์„ ๊ตฌ๋™์‹œ์ผœ ๋†“์œผ๋ฉด ๋ฒˆ๊ฑฐ๋กœ์›€์—†์ด ํŽธํ•˜๊ฒŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ํŽ˜์ด์ง€ ๋‚ด ๊ทธ๋ฆผํŒ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค.

* ํ”„๋ก ํŠธ๋ฆฌํฌ์™€ ๋ฐฑ์—”๋“œ๋ฆฌํฌ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ƒ์„ฑ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ํ•˜๋‚˜์˜ ๋ฆฌํฌ์•ˆ์—์„œ ํ”„๋ก ํŠธ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋”ฐ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. postman์„ ํ™œ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ๊ตฌ๋™๋„ ์ž˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

* article์˜ id์— ํ•ด๋‹น๋˜๋Š” ๊ฒŒ์‹œ๋ฌผ๊ณผ comment listing

serializers.py

class CommentSerializer(serializers.ModelSerializer):
    comments_article = serializers.SerializerMethodField()

    def get_comments_article(self,obj):
        return obj.article.id
    class Meta :
        model = CommentModel
        fields = ['contents', 'comments_article']


class ArticleSerializer(serializers.ModelSerializer):
    comment_set = CommentSerializer(many=True)
    class Meta:
        model = ArticleModel
        fields = ['author','title','image','contents','output','comment_set']

views.py

# article detail
class ArticleDetailView(APIView):
    permisiion_classes = [IsAuthenticated]

    def get(self, request, obj_id):
        
        article_detail = ArticleModel.objects.get(id=obj_id)
        return Response(ArticleSerializer(article_detail).data)

๐ŸŒฑ ๋Š๋‚€ ์ 

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

๐ŸŽ ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” Moonmoo ์— ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค

profile
ํ•˜๋ฃจ ํ•œ๊ฑธ์Œ์”ฉ ๊พธ์ค€ํžˆ ๋‚˜์•„๊ฐ€๋Š” ๊ฐœ๋ฐœ์ž๐Ÿ™†โ€โ™€๏ธ https://github.com/Moonmooj

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด