์ด์ ๊น์ง๋ ๋ฆฌ๋ทฐ post()๋ฉ์๋๋ฅผ ์ ๋ํ
์คํธ๋ฅผ ์์ฑํด์
์ค๋์ ๋ฆฌ๋ทฐget()๋ฉ์๋๋ฅผ ์์ฑํด๋ณด๊ธฐ๋ก ํ๋ค.
์ฐ์ , view.py๋ฅผ ์์ฑํ๊ธฐ์ ๋ชฉ์ ๊ณผ input, output์ ํ๊ธ๋ก ์์ฑํด๋ณด๊ณ ๋ก์ง์ ์์ฑํด๋ณด๋๊ฒ ์ข๋ค๊ณ ํ์
์ ์์ฑ์ ํด๋ณด์๋ค.
class ReviewView(View):
#@decorator
def get(self, request, product_id):
reviews = Review.objects.all()
review_list = []
for review in reviews:
review_list.append(review)
์ฐ์ ์ฒ์์ ์์ฑํ ์ฝ๋์ด๋ค.
๋ฆฌ๋ทฐ์ ์ ๋ณด๋ฅผ ๋ชจ๋ ๋ถ๋ฌ์์ผ ํ๋, Review.objects.all()
์ ํตํด ๋ชจ๋ ๋ถ๋ฌ์ค๋ฉด ์ฟผ๋ฆฌ์
์ธ ๋ฆฌ์คํธ์ ํํ์ด๋ ํ๋ํ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ์ํด for๋ฌธ์ ์์ฑํด๋ณด๊ธฐ๋ก ํ๋ค.
๋น ๋ฆฌ์คํธ์ review๋ฅผ ๋ฃ์ด๋ณด๋ ๊ฐ์ฒด๋ฅผ ๊ทธ๋๋ก ๋ด๋ ๊ฑธ ๋ณด๊ณ ์ฝ๋์ ์ด์ํจ์ ๋๋.
class ReviewView(View):
#@decorator
def get(self, request, product_id):
reviews = Review.objects.all()
# reviews = Review.objects.filter(id=product_id) #--> ์ฟผ๋ฆฌ์
๋ฆฌ์คํธ ํํ
review_list = []
for review in reviews: # --> ์ฟผ๋ฆฌ์
๋ฆฌ์คํธ์์ ๊ฐ์ฒด(review)๋ฅผ ํ๋์ฉ ๊บผ๋ด์ค
# // ํํํ๊ณ ์ถ์๊ฒ : product1์ ํค : {product1์ด ๊ฐ์ง ์ ๋ณด๋ค}
# // product์ ๋ณด๋ฅผ ๋ด์ ํค๋ฒจ๋ฅ๋ฅผ ๋์
๋๋ฆฌ์ ๋ด์์ ํฐ ๋ฆฌ์คํธ์ ๋ด์์ ์ฃผ๊ณ ์ถ๊ณ ,
# // 5๊ฐ์ ๋์ฉ ์๋ผ์ ์ฃผ๊ณ ์ถ์
product1 :
{
'year' : review.created_at.year,
'month' : review.created_at.month,
'day' : review.created_at.day,
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
},
product2 :
{
'year' : review.created_at.year,
'month' : review.created_at.month,
'day' : review.created_at.day,
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
},
product3 :
{
'year' : review.created_at.year,
'month' : review.created_at.month,
'day' : review.created_at.day,
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
}
review_list.append(product1) # review์ ๊ฐ์ฒด ์ ๋ณด๋ฅผ ๋ฃ์ด์ผํจ
review_list.append(product2)
review_list.append(product3)
#review => ์ฐ์ ๊ฐ์ฒด์
#๋ฆฌ๋ทฐ ์์ฑ ๋ ์ง(๋
๋.์.์ผ๋ง ๋ถ๋ฌ์์ผํจ) => ๋
๋ = review.created_at.year
# ์ = review.created_at.month
# ์ผ = review.created_at.day
#์นด์นด์ค์์ด๋ => review.user.kakao_id
#์ํ๋ช
=> review.product.name
#๋ฆฌ๋ทฐ๊ธ์จ => review.content
#์ ์ ๋ฑ๋ก์ด๋ฏธ์ง =>review.image_url
๊ทธ๋์ {}๋์
๋๋ฆฌ์ ํํ๋ก ๋ด์๋ณด์๋ ์๊ฐ์ผ๋ก ๋ฐ๊ฟ์ ์ฝ๋๋ฅผ ์์ฑํด๋ด
for๋ฌธ์ ๋๋ฆฌ๊ธดํ๋๋ฐ ๋ญ๊ฐ ์ด์ํจ...
append() ํจ์๋ฅผ ์ฌ์ฉํด์ ์ด๋ป๊ฒ ๋ฃ์ด์ผ ํ ์ง ๊ฐ์ด ์์์ ์ฐ์ ํ๋์ฝ๋ฉํ ํ์
์ด๋ ์์ง ์์ฑ๋ ์ง์ ๋ํด์ ๋
์์ผ์ ๋ฐ๋ก๋ฐ๋ก ํ๋ก ํธ๋จ์ ๋๊ฒจ์ค์ง
๋
์์ผ์ ์กฐํฉํด์ ํฉ์ณ์ ํ๋ก ํธ๋จ์ ๋๊ฒจ์ค์ง ์์ง ์ํต์ ๋ชปํด์ ์ถํ์ ๋ค์ ์ด์ผ๊ธฐ ํด๋ณด๋ ๊ฑธ๋ก
์ฌ๊ธฐ์ ์ ๊น ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ ํด์ผ ํ ์ง ๊ณ ๋ฏผ์ ํ๊ฒ ๋์๋ค.
๊ณ ๋ฏผ์ ํ๋ ์ค ์๊ฐ์ด ์ ์ ์ฐ์ผ๋ก ๊ฐ์ ์ด ์๊ฐ์ ๋ฐฉํฅ์ฑ์ ๋ํด ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์๋ค...
"all()์ ํตํด์ ์ฟผ๋ฆฌ์ ํํ๋ฅผ ๊ฐ์ฒด๋ก ํ๊ฐ์ฉ ๊บผ๋ด์๊ณ ,
๊ทธ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ค์ ์๊ฒ์๊ฒ ์ฌ๋ฌ๊ฐ๋ฅผ ๋์ ๋๋ฆฌ์ ํค์ ๋ฒจ๋ฅ๊ฐ์ผ๋ก ๋ฃ์ด์ฃผ๊ณ ์ถ์
๊ทผ๋ฐ ๊ทธ ๋ฃ์ ๋์ ๋๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ ํฐ ๋ฆฌ์คํธ์ ๋ด์์ ์ฃผ๊ณ ์ถ์
์ ์ง for๋ฌธ์ ์ด์ค์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ ๊ฒ๊ฐ๊ธดํ๋ฐ...์ด ๋ฐฉ๋ฒ์ด ๋ง๋ ๊ฑด์ง.."
๊ทธ๋์ ์ด๋ ๊ฒ ์๊ฐํ๋๊ฒ ๋ง๋๊ฑด์ง ๋ฉํ ๋๊ป ๋์์ ์์ฒญํ์๋ค.
์ด์คfor๋ฌธ์ ๋ํ ํํธ์
ํ์ฌ ์์ฑํ ์ฝ๋์์ผ๋ก ์ด๋ป๊ฒ {}๋์
๋๋ฆฌ๋ฅผ append()ํจ์์ ๋ฃ์์์๋์ง ๊ฐ์ด ์์์ ํ๋์ฝ๋ฉ์ผ๋ก ์ฐ์ ๋ด๊ฐ ํ๋ก ํธ๋จ์ ๋๊ฒจ์ฃผ๊ณ ์ถ์ ์ ๋ณด๋ฅผ ๋ณ์์ ๋ฃ์ด์ ๊ทธ๊ฑธ ๊ฐ๊ฐ append()์ ์์์ ์ผ๋ก ๋ฃ๋ ์์
์ผ๋ก ์์ฑํ์ฟ๋ค.
append()ํจ์์ ์ฌํ๊น์ง ํ๋์ ๋ณ์๋ง ๋ด์ ์ ์๋ ์ค ์์๋ค
์๋ฅผ ๋ค๋ฉด, ๊ธฐ์ด์ ์ธ ์์๋ก
result = []
for i in range():
result.append(i)
append()ํจ์์ ํ์์ ์ฒ์ ์ ํ์๋์ ๋ชจ์ต๋ง ๊ธฐ์ตํ๊ณ ์์๋ ๊ฒ๊ฐ๋ค...
์ฌ๊ธฐ์ ๋ด๊ฐ ํ์ด์ฌ ๊ฐ๋ ๊ณต๋ถ๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฑธ ๋ค์ ํ๋ฒ ๋๋ผ๊ฒ ๋์๋ค.( : ํ์ด์ฌ ๊ฐ๋ ์ด ๋ถ์กฑํ๊ฑด ํ๋ก์ ํธ๋ฅผ ์ฐ์ ๋๋ด๊ณ ์ถ๊ฐ๋ก ๋ ๊ณต๋ถํ๋๊ฑธ๋ก - ์ฐ์ ์ ํ์ ์์ฑ๋จผ์ ํ์ใ ใ ใ )
๋ฌดํผ.
append()ํจ์์ ํ์ด์ฌ ๊ฐ์ฒด๊ฐ ๋ชจ๋ ๋ค์ด๊ฐ์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋๊ฒ์ด๋ค,...ใ
ใ
ใ
๊ทธ๋ผ ๋ด๊ฐ ๊ตฌํํ๊ณ ์ถ์ {}๊ฐ์ ๊ทธ๋๋ก append()ํจ์์ ๋ฃ์ ์ ์๋ค๋ ๊ฒ์ด ๋๋ค!!
๊ทธ๋ฌ๋ฉด append()ํจ์์ {}๋์
๋๋ฆฌํํ๋ก ์ ๋ฌํด์ฃผ๊ณ ์ถ์ ์ ๋ณด๋ฅผ key:valueํํ๋ก ๋ด์์ ๋ฃ์ด๋ณด์!!
ํด์ ์๋์ ๊ฐ์ด ์ฝ๋๋ก ๋ณ๊ฒฝ๋์๋ค...
class ReviewView(View):
#@decorator
def get(self, request, product_id):
reviews = Review.objects.filter(product_id = product_id)
# reviews = Review.objects.filter(id=product_id) #--> ์ฟผ๋ฆฌ์
๋ฆฌ์คํธ ํํ
review_list = []
for review in reviews:
review_list.append(
{
'year' : review.created_at.year,
'month' : review.created_at.month,
'day' : review.created_at.day,
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
}
)
์ฒ์์ reviews ๋ณ์์ ๋ฆฌ๋ทฐ๋ค์ ์ ๋ณด๋ค์ ๋ด์ ๋
์กฐ๊ฑด์์ด all()๋ก ๋ชจ๋ ๋ฆฌ๋ทฐ๋ค์ ๊ฐ์ง๊ณ ์ค๊ฒ ์์ฑ์ ํ๋๋ฐ
๋ค์ ๋ชฉ์ ์ ์๊ฐํด๋ณด๋
ํ product์ ๋ํ ๋ชจ๋ ์ ์ ๋ค์ด ์์ฑํ ๋ชจ๋ ๋ฆฌ๋ทฐ์๋ค...
all()์ ์ฌ์ฉํ ๊ฒฝ์ฐ๋์ ์กฐ๊ธ ๋ค๋ฅด๋ค๋๊ฒ์ ๋ค์ ํ๋ฒ ์๊ฐํ๊ฒ ๋์๋ฐ.
์๋. all()๊ฒฝ์ฐ, ์กฐ๊ฑด ์์ด ๋ชจ๋ ๋ฆฌ๋ทฐ๋ค์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ฏ๋ก
๋ชจ๋ ๋ฌผํ์ ๋ํ ๋ชจ๋ ์ ์ ๋ค์ด ์์ฑํญ ๋ชจ๋ ๋ฆฌ๋ทฐ๋ค์ ๋ถ๋ฌ์ค๋ ์ฟผ๋ฆฌ์
์ ๋ณ์๊ฐ ๋๋๊ฒ์ ๋๋ผ๊ณ
filter()๋ฅผ ํตํด product์ ๋ํ id๊ฐ์ pathparameter๋ก ๋ฐ์ ๋ฌผํ์ ๋ํ ๋ชจ๋ ์ ์ ๊ฐ ์์ฑํ ๋ฆฌ๋ทฐ ์ ๋ณด๋ฅผ ๋ด๋ ํ์์ผ๋ก ์์ ๋ ๊ฐ์ด ์ ์ฉํ ์ฝ๋์ด๋ค.
Day 7~
์ด์ ํฐ ํ๋ง ์์ฑํ๊ณ ์ค๋์ ๊ฒฐ๊ณผ๊ฐ์ด ์ ๋๋ก ๋์ค๋์ง
for๋ฌธ์ ์ ์ฉํด์ ์ฌ๋ฐ๋ฅธ ๊ฐ๋ค์ด ๋์ค๋์ง
๋๋จธ์ง success๋ฌธ๊ตฌ๊น์ง ํ์ธํ ํ์ ํต์ ์๋ฃ ํ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ๋๋ก ํ๊ฒ ๋ค.
๋ ์ฉ...
์๋ postman์ผ๋ก ์์ฑํ๋๋, ๋ด๊ฐ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ฆฌ๋ทฐ ์ ๋ณด๊ฐ์ด ์๋ SUCCESS๋ง ๋จ๋ ํ๋๋..
์๋ ๋น ๋ฆฌ์คํธ์ ์ด์ฌํ ๋ด์๋๊ณ ...post ๋ฉ์๋ ์์ฑํ ๋ ๋๋ฌด success์์ฑํ๋๊ฑฐ์ ์ต์ํด์ ธ์ ๊ทธ๋ฐ๊ฐ ์๋ชป ์์ฑํ๋๊ฒ์ด๋ค..
๋ค์...๋ด๊ฐ ์ ๋ฌํด์ฃผ๊ณ ์ถ์๋ ๋ณ์๋ก ์์ ํด๋ณด์๋ค...
์ ๊ทผ๋ฐ,,๋ ๋ฌธ์ ๊ฐ ์๊ธด...์์์ ์
๋ ฅํ์๋ ๋ถ๋ช
์ฌ๋ฌ๊ฐ์ ๋์
๋๋ฆฌ๊ฐ ๋์๋๋ฐ...์....ํ๊ฐ์ ๋์
๋๋ฆฌ ์ ๋ณด๊ฐ ๋์ค๋๊ฑธ๊น์ธ๊ฐ...์ถ์๊ฑฐ๋ค,...ํ....๋ ๋ญ๊ฐ ์๋ชป๋๊ฑธ๊น,....
์ด๊ฒ ๋ด๊ฐ ์์์ ์ ๋๋ก ์๋ํ๋์ง ๋ถ๋ฌ์จ review_list ๋ค์ธ๋ฐ..์ใ
ใ
ํด๋น ๋ธ๋ก๊ทธ ๊ณผ์ ์์ ์์ ํ ์ฝ๋๋ ์๋์ ์์ฑํ๋๋ก
๋ ์ง ์ฝ๋๋ฅผ ์์ ํ ํ์ ์ญ์๋ postman์ ์ฐ์ด๋ดค์ง๋ง ๋ฆฌ๋ทฐ ์ ๋ณด ํ๋๋ง ๋์จ๋ค...๊ทธ๋ผ ์ฌ๋ฌ๊ฐ์ ๋ฆฌ๋ทฐ ์ ๋ณด๊ฐ ๋์ค๊ฒ ํ๋ ค๋ฉด ์ฌ๊ธฐ์ ํ๋ฒ ๋ for๋ฌธ์ ์๊ฐ์ ํด๋ด์ผ ํ๋ ๋ณด๋ค....ใ
# reviews = Review.objects.filter(id=product_id) #--> ์ฟผ๋ฆฌ์
๋ฆฌ์คํธ ํํ
review_list = []
for review in reviews:
review_list.append(
{
'date' : review.created_at.strftime('%y/%m/%d'), # '21/12/16'
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
}
)
return JsonResponse({'result':review_list}, status = 200)
์์ ์ฝ๋์์ฑํ ์ํฉ์ for๋ฌธ์ ๋๋ฒ์ ์์ฑํด์ผํ๋ ์ํฉ์ธ๋ฏ ์ถ์
ํต์ ์ ํ ๋ ํ๊ฐ์ ๋ฆฌ๋ทฐ๋ง ๊ฐ์ ธ์จ๋ค๋๊ฑด ๋ฐ๋ณต๋ฌธ์ด ํ๋ฒ๋ ํ์ํ๋ค๋ ๊ฒ ๊ฐ์ง๋ง..์ฐ์ ...๊ทธ๊ฑด ๋์ค์ ํด๊ฒฐํ๊ธฐ๋ก...
์ฐ์ ๋ฆฌ์คํธ ์ปจํ๋ฆฌํจ์
์ ์ฌ์ฉํด์ ๋ค์ ์ฝ๋๋ฅผ ์์ฑํ ํ postman์ผ๋ก ํต์ ํด๋ณด๋, ๋ด๊ฐ ์ํ๋ ํํ๋ก ์ฌ๋ฌ๊ฐ์ ๋์
๋๋ฆฌ์ ์ ๋ณด๋ฅผ ๋๊ฒจ์ฃผ๋ ๊ฒ์ ํ์ธํด๋ณผ ์์๋ค.
class ReviewView(View):
#@decorator
def get(self, request, product_id)
reviews = Review.objects.filter(product_id = product_id)
review_list =[
{
'date' : review.created_at.strftime('%y/%m/%d'), # '21/12/16'
# 'date' : review.created_at.strftime('%Y/%m/%d'), #'2021/12/16'
# 'date' : review.created_at.strftime('%Y.%m.%d'), #'2021.12.16'
# 'date' : review.created_at.strftime('%Y-%m-%d'), #'2021-12-16'
# 'date' : review.created_at.strftime('%Y.%m.%d.%a'), #'2021.12.16.Thu'
# 'date' : review.created_at.strftime('%Y.%m.%d.%A'), #'2021.12.16.Thursday'
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : review.image_url,
} for review in reviews]
return JsonResponse({'result':review_list}, status=200)