• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

post.like_set은 어떤 문법인가요?

20.03.08 16:28 작성 조회수 121

1

안녕하세요 인스타클론을 완강 후에 다른 프로젝트를 만들어보고 있는데요

인스타 클론에서 like와 비슷한 기능을 가진 기능을 만들려고 하고 있습니다.

그런데  models.py를 보면

class Post(models.Model):

    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    photo = ProcessedImageField(upload_to=photo_path,
                                processors=[ResizeToFill(600, 600)],
                                format='JPEG',
                                options={'quality': 90})
    content = models.CharField(max_length=140, help_text="최대 140자 입력 가능")
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    tag_set = models.ManyToManyField('Tag', blank=True)
    
    like_user_set = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                           blank=True,
                                           related_name='like_user_set',
                                           through='Like')  # post.like_set 으로 접근 가능
    bookmark_user_set = models.ManyToManyField(settings.AUTH_USER_MODEL,
                                           blank=True,
                                           related_name='bookmark_user_set',
                                           through='Bookmark')  # post.like_set 으로 접근 가능
인데
def post_like(request):
    pk = request.POST.get('pk', None)
    post = get_object_or_404(Post, pk=pk)
    post_like, post_like_created = post.like_set.get_or_create(user=request.user) # 중요한 부분이래...(get_or_create) 사용자끼리의 일종의 스위치를 만든다?

    if not post_like_created: #일종의 flag
        post_like.delete()
        message = "좋아요 취소"
    else:
        message = "좋아요"

    context = {'like_count': post.like_count, #import json
               'message': message}

    return HttpResponse(json.dumps(context), content_type="application/json") #from django.http import HttpResponse
란 말이죠
왜 post.like_set을 사용할 수 있는건가요?
관련된 document 링크를 보내주실 수 있나요?

답변 1

답변을 작성해보세요.

0

항상 열심히 해주시는 재일님 !! ^ ^ 질문감사드립니다 

그에 반해서 답글이 너무 늦었네요 ㅠ ㅠ 지송지송 

우선 관련된 내용은 아래 문서를 참고해주세요

https://docs.djangoproject.com/en/3.0/ref/models/fields/#django.db.models.ForeignKey.related_name

더불어 저도 처음에 햇갈렸던 내용중에 하나였는데요

저도다 훨씬 잘 설명해주신 분의 질문글이 아래에 있습니다 

https://www.inflearn.com/questions/18752

위에 문서와 함꼐 위에 질문답변 내용들을 보시면 좀더 이해가 되실겁니다 :) 

항상 열심히 해주셔서 감사해요 ~ ㅎ 화이팅입니다 재일님~ㅎ