아래와 같은 Model 이 있을때,
# instagram.models.py
from django.db import models
# Create your models here.
class Post(models.Model):
message = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
# return f"Custom Post object ({self.id})" # Python >= 3.7
# return "Custom Post object ({})".format(self.id)
return self.message
1) veritualenv 로 접속
root@km-VirtualBox:~/django-with-react-study# source venv/bin/activate
(venv) root@km-VirtualBox:~/django-with-react-study# cd askcompany/
2) python manage.py shell 를 통해서 DB로 접속합니다.
(venv) root@km-VirtualBox:~/django-with-react-study/askcompany# python manage.py shell
Python 3.8.10 (default, Nov 26 2021, 20:14:08)
3) Post 모델의 전체 Queryset 정보
>>> from instagram.models import Post
>>>
>>> Post.objects.all()
<QuerySet [<Post: 첫번째 메세지>, <Post: 두번째 메세지>, <Post: 세번째 메세지>]>
4) filter 사용 해보기
>>> Post.objects.all().filter(message__icontains='첫번째')
<QuerySet [<Post: 첫번째 메세지>]>
>>>
5) SQL 문으로 확인해보기
>>> print(qs.query)
SELECT "instagram_post"."id", "instagram_post"."message", "instagram_post"."created_at", "instagram_post"."updated_at" FROM "instagram_post" WHERE "instagram_post"."message" LIKE %첫번째% ESCAPE '\'
>>>