django tutorial-05 작성했던글 화면에 출력하기 01
[django tutorial-05] 작성했던글 화면에 출력하기 01
화면에 출력하기에 앞서 Querysets 에 대해 기록한다.
장고 쉘을 실행시켜 테스트해본다.
(myvenv) ...$ python manage.py shell
(InteractiveConsole)
>>>
모든객체 조회하기
>>> from blog.models import Post
>>> Post.objects.all()
객체 생성하기
- User모델 call
>>>from django.contrib.auth.models import User
>>>User.objects.all()
- admin인스턴스를 me에 저장
>>>me = User.objects get(username='admin')
- 게시물 작성
>>>Post.objects.create(author=me, title='Sample title', text='Test')
>>>Post.objects.all()
- 필터링 – 내가 작성한 글만보기
>>> Post.objects.filter(author=me)
- 필터링 – ‘title’이라는 문구가 있는 게시글 조회 (title과 contains사이에 underscore가 두줄인데, 필드명과 연산자를 underscore 두줄로 구분해준다.)
>>> Post.objects.**filter**(title__contains='title')
- 현재 날짜를 기준으로 과거 날짜 게시물조회
위에서 테스트로 생성했던 게시글을 models.py에 있는 publish()
메서드를 이용해서 저장한다.
>>> post = Post.objects.get(title="Sample title")
>>> post.publish()
- 시간옵션을 적용하여 조회한다.
>>> from django.utils import timezone
>>> Post.objects.filter(published_date__lte=timezone.**now**())
정렬하기
- asc정렬
>>> Post.objects.**order_by**('created_date')
- desc정렬
>>> Post.objects.order_by('-created_date')
여러 조건을 중첩해서 적용하기
>>> Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')