Wagtail이나 Django로 개발을 하다보면 orm을 사용하게 된다. 

보통 shell을 많이 사용하는데 shell은 직접 사용 모듈을 import해야하는 번거로움이 있다. 

Django_extensions은 미리 관련 module을 import 해줘서 효율적인 개발을 도와준다. 

 

 

설치방법은 아래와 같다. 

pip install django-extensions

 

settings/dev.py

INSTALLED_APPS = INSTALLED_APPS + [
    'django_extensions',
]

 

 

설치를 다 했으면 실행시켜보자.

python manage.py shell_plus

 

몇가지 Wagtail과 Django에서 사용하는 orm을 정리해보려고 한다.

 

 

1) all()

BlogDetailPage.objects.all()

모든 BlogDetailPage의 객체들을 가져온다.

 

2) last()

BlogDetailPage.objects.last()

마지막에 작성된 BlogDetailPage의 객체를 가져온다.

 

3) first()

BlogDetailPage.objects.first()

첫번째로 작성된 BlogDetailPage의 객체를 가져온다.

 

4) live()

BlogDetailPage.objects.live()

현재 발행 중인(wagtail) 객체를 가져온다.

 

5) filter()

BlogDetailPage.objects.filter(title="Blog Post #1")

특정 조건의 객체를 가져온다.

 

6) list

posts = BlogDetailPage.objects.all()
first_post = posts[0]

첫번째 순서에 위치 되어 있는 객체를 가져온다.

 

7) __dict__

first_post.__dict__

객체의 모든 정보를 가져온다.

 

8) __dir__

first_post.__dir__

객체가 저장되어 있는 메모리 주소를 가져온다.

 

9) get_parent()

first_post.get_parent()

객체의 부모 페이지 객체를 가져온다.

 

10) siblings()

first_post.get_siblings()

같은 레벨의 객체들을 가져온다.

 

11) save()

first_post.title = "First Blog Post (test title)"
first_post.save()
first_post
>><BlogDetailPage: First Blog Post (test title)>

객체의 변경내용을 저장한다.

 

 

추가)

하지만 django_extensions보다 더욱 편리하게 사용할 수 있는 방법이 있다. 

 

1. ipython 설치

pip install ipython

 

2. ipython 실행

python manage.py shell_plus --ipython

 

3. using TAB

객체를 입력하고 tab key를 누르면 모든 orm이 나온다. 물론 전부 사용할 수 있는 것이 아니라 객체의 정상적인 orm을 사용해야할 것이다. 

 

종료하고 싶을 때는 

exit

 

'Back-End > Django' 카테고리의 다른 글

Django Request, Requests  (0) 2021.12.16
Django Signals  (0) 2021.10.22
Django ORM  (0) 2021.10.21
Django iamport 적용하기  (0) 2021.10.06
Django Bulma 적용 방법  (0) 2021.08.24

+ Recent posts