python manange.py startapp subscribeapp
그동안 코드를 짜면서 아래와 같은 형식을 사용했다.
Model.objects.filter(pk=xxx, user=xxx)
pk=xxx, user=xxx는 AND function이다. OR, WHERE function은 어떻게 쓰는걸까?
- 유저가 구독하고 있는 프로젝트 확인하기
- 프로젝트들 안에 있는 모든 게시물을 가져오기
위의 코드를 아래의 코드로 바꿀 것이다.
장고에서 제공하는 Field Lookups(_) 사용!
Article.objects.filter(project_in=projects)
➡️ 조금 더 복잡한 DB 쿼리를 사용자가 구현할 수 있도록 하기 위함
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
What You See Is What You Get의 약자로 보는대로 글이 써진다는 의미이다.
게시판 기능 중 하나이다.
깃허브의 누군가가 제공해준 링크를 받아 사용할 수 있다.
따옴표 앞에 f를 붙이면 직접 변수를 출력할 수 있다.
def __str__(self):
return f'{self.pk} : {self.title}'
루트 디렉토리에서 find path를 클릭한 후 hello_world가 사용되지 않는 부분은 정리했다.
그동안 프로젝트를 실행하면 연결된 페이지가 없어서 주소창에 입력하고 들어갔는데
홈 url을 지정했다.
urlpatterns = [
path('', ArticleListView.as_view(), name='home'),
]
css적 요소를 추가했다. 구글에서 제공하는 아이콘의 링크를 받아 사용할 수 있다.
<!-- GOOGLE MATERIAL ICONS LINK -->
<link href="https://fonts.googleapis.com/css2?family=Material+Icons" rel="stylesheet">
장고라는 파이썬 언어를 사용해 웹페이지를 만들어봤다. 강의를 보며 무작정 따라하는 느낌이 강한 초반과 프로젝트를 끝내고 나니 그래도 이해는 하며 만들고 있는 모습이 비교되었다. 파이썬 문법을 생각보다 몰랐다는 점, 데이터베이스 지식도 부족했던 점 등을 깨달으며 보충할 점을 찾게 된 좋은 강의였다.