-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
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 링크를 보내주실 수 있나요?
답변을 작성해보세요.
0
카인드패밀리
지식공유자2020.03.15
항상 열심히 해주시는 재일님 !! ^ ^ 질문감사드립니다
그에 반해서 답글이 너무 늦었네요 ㅠ ㅠ 지송지송
우선 관련된 내용은 아래 문서를 참고해주세요
https://docs.djangoproject.com/en/3.0/ref/models/fields/#django.db.models.ForeignKey.related_name
더불어 저도 처음에 햇갈렸던 내용중에 하나였는데요
저도다 훨씬 잘 설명해주신 분의 질문글이 아래에 있습니다
https://www.inflearn.com/questions/18752
위에 문서와 함꼐 위에 질문답변 내용들을 보시면 좀더 이해가 되실겁니다 :)
항상 열심히 해주셔서 감사해요 ~ ㅎ 화이팅입니다 재일님~ㅎ
답변 1