예시로 작성한 모델과 뷰파이 (이중 리스트 컨프리헨션 사용하기 위함)
#models.py
class Review(models.Model):
name = models.Models.CharFiled( )
product = models.Models.ForeinKey(User)
user = models.Models.ForeinKey(Product)
class Image(models.Model):
product = models.Models.ForeinKey(Product)
image_url = models.Models.ForeinKey
#views.py --> review 정보를 불러오는 view
class ReviewView(View):
def get(self, request, product_id):
reviews = Review.objects.filter(product_id = product_id)
results = [{
'date' : review.created_at.strftime('%Y.%m.%d.%a'), #'2021.12.16.Thu'
'kakao_id' : review.user.kakao_id,
'product_name' : review.product.name,
'content' : review.content,
'image_url' : [i.url for i in review.reviewimage_set.all()] #--> review테이블이
#reviewimage테이블한테 참조 당하고 있음.그래서 역참조 해야함. 방금 뽑은 i라는 객체를 json형태로 반환이 불가능하므로, 그거의 속성값으로 반환해줘야함.
} for review in reviews ]
return JsonResponse({'message' : results}, status=200)