meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 안드로이드adaptor
  • Proxy
  • 코틀린자료형
  • 이차원배열정렬
  • 리눅스방화벽
  • dockersecret
  • gabagecollecter
  • dp #알고리즘
  • 개발자도서
  • Kotlin
  • cpu사용률
  • 중첩라우트
  • SASS Variables
  • docker
  • 리눅스인증
  • router-link
  • DHCP
  • django
  • 배포인프라
  • 테크커리어

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

django 30. Field Lookup을 사용한 구독 페이지 구현
Backend/Django

django 30. Field Lookup을 사용한 구독 페이지 구현

2021. 10. 18. 18:59
728x90
반응형

이번 프로젝트의 목표

장고에서 제공하는 DB Query를 위한 기능인 Field Lookup을 사용하여 사용자가 구독한 게시판의 게시글만 볼 수 있는 구독페이지 만듦

 

Field Lookups

  • 장고가 제공하는 함수이며 복잡한 쿼리를 구현해주는 함수
  • SQL 구문에서 WHERE 절에 해당되는 기능

 

예시]

(project__in=...) : 언더바 __ 는 sql에서

SELECT ... WHERE project IN (...); 와 같다.

https://docs.djangoproject.com/en/3.0/ref/models/querysets/#id4

 

QuerySet API reference | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

 

views.py

@method_decorator(login_required, 'get')
class SubscriptionListView(ListView):
    model = Article
    context_object_name = 'article_list'
    template_name = 'subscribeapp/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
  • values_list를 사용하여 Subscription의 내가 구독한 project 필드값들을 list화 시킴
  • list화 시킨 projects를 Field Lookups 형태로 만들어줌

 

list.html

{% extends 'base.html' %}

{% block content %}
    <div>
        {% include 'snippets/list_fragment.html' with article_list=article_list %}
    </div>
{% endblock %}
  • return 받은 article_list html로 전달

 

 

urls.py

 path('list/', SubscriptionListView.as_view(), name='list'),
  • 구독한 게시물 list url 추가 

 

  • Subscription 링크 시 구독한 게시물만 나옴
반응형
저작자표시 비영리 변경금지 (새창열림)

'Backend > Django' 카테고리의 다른 글

Django message 구현  (0) 2021.12.02
django 31. WYSIWYG 의 소개 및 적용  (0) 2021.10.18
django 29. RedirectView을 통한 SubscribeApp시작  (0) 2021.10.13
django 28. MultipleObjectMixin을 통한 ProjectApp 마무리  (0) 2021.10.13
django 27. 모바일 디버깅, 반응형 레이아웃  (0) 2021.10.12
    'Backend/Django' 카테고리의 다른 글
    • Django message 구현
    • django 31. WYSIWYG 의 소개 및 적용
    • django 29. RedirectView을 통한 SubscribeApp시작
    • django 28. MultipleObjectMixin을 통한 ProjectApp 마무리
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바