구독 카운트 하는 방법

2021년 6월 8일 10:16 오후

favorite

3

comment

6

USE

개발 질문


안녕하세요 강사님,

동영상 강의의 친절한 설명으로 많은 것을 배우고 있습니다.

제가 또 궁금한 것은 동영상에서 해주신 것 외에 추가로 구현해 보고 싶은게 있다면, 구독하고 있는 갯수를 카운트 해보고 싶은데 잘 안되고 있습니다.

이 경우에는 어떤 것을 어떻게 코드를 해줘야 하는건가요?

답변 기다리겠습니다. 

감사합니다.


favorite 3
thumb_down 0
kakao_story_share kakao_story_share kakao_story_share

fast_forward 다음글이 없습니다.
fast_rewind 안녕하세요 장고 관련 질문이 있습니다!!ㅠㅠ

yesman_1114

2021년 6월 9일 1:57 오전

favorite

2

안녕하세요!

해당 기능은 특정 유저의 Subscription을 필터링한 후에 해당 개수를 카운트하는 방식이면 구현이 가능할 것 같은 생각이 듭니다.

뷰 단이 아니라 템플릿단에서 모든 로직을 처리하시려 하신걸까요?

혹시 어떤 방식으로 접근하셔서 어려움을 겪으셨는지 여쭤봐도 될까요?

USE

2021년 6월 9일 9:40 오전

favorite

2

답변 감사합니다,

뷰단에서 로직을 처리하고 싶은데 view 단에서 queryset으로 접근을 해야할까요?
아니면 filter로 걸러야 할까요?

아직 초보라 강사님께서 올려주신 강의를 끝내고 강사님처럼 profileapp에 구독 수를 넣으려고 했거든요..

강사님께서는 어떻게 접근을 하셨는지 궁금합니다.

yesman_1114

2021년 6월 9일 12:02 오후

favorite

0

View 단에서 문제를 해결하는 것은 문제가 크게 어렵지는 않을듯 합니다.

일단 저희 Subscription 의 내용은 유저와 프로젝트가 연결되어 있습니다.

그렇기 때문에
Subscription.objects.filter(user=xxx)
와 같은 형식으로 구독을 필터링 한 이후에
해당 쿼리셋의 개수를 확인하면 되지 않을까 생각합니다.

저희가 강좌에서 filter 문을 사용하다 보니 queryset 과 혼동을 하시는 듯 한데,
filter 문 자체도 queryset을 만들기 위한 하나의 API 입니다.

저희가 사용한 구문 말고도 정말 많은 queryset을 추려내기 위한 구문이 있습니다.

https://docs.djangoproject.com/en/3.2/topics/db/queries/#retrieving-objects
장고의 문서를 참고하시면
어떻게 object 들을 걸러내는지에 대한 정보를 더 자세히 확인하실수 있을거에요.

USE

2021년 6월 9일 5:56 오후

favorite

2

답변 감사합니다.
한번 다시 시도해보고 혹시라도 계속 막히면 다시 여쭤보겠습니다 :)

USE

2021년 6월 9일 11:20 오후

favorite

2

강사님,
subscriptionapp/view.py 에서

@method_decorator(login_required, 'get')
class SubscriptionListView(ListView):
model = Article
context_object_name = 'article_list'
template_name = 'subscriptionapp/list.html'
paginate_by = 5

def get_queryset(self):
projects = Subscription.objects.filter(user=self.request.user).values_list('project')
article_list = Article.objects.filter(project__in=projects)

return article_list

def get_num_of_subscription(request):
count = Subscription.objects.filter(user=request.user).values_list('project').count()
context = {'count': count}

return render(request, 'accountapp/detail.html', context)

로 return 하여 accountapp/detail.html에서 {{ context }} 로 호출을 했는데 불러오질 못하더라구요. 혹시 제가..어떤 부분을 놓쳤을까요?

USE

2021년 6월 16일 8:56 오전

favorite

1

강사님 바쁘신가요?^^;


로그인