[Django] Database 테이블에 데이터가 없을 때 만 추가하는 방법

2019. 1. 31. 17:15· Python/Django
반응형

[Django] 테이블에 값이 없을 때만 추가하는 방법



아래와 같이 

1) get() 으로 해당 데이터가 있는지 검사 (Select)

2) 없으면 save()로 데이터 삽입 (Insert)

try-catch 방식을 사용하여 작성이 가능하다.

try:
    obj = Person.objects.get(first_name='John', last_name='Lennon')
except Person.DoesNotExist:
    obj = Person(first_name='John', last_name='Lennon', birthday=date(1940, 10, 9))
    obj.save()


Django 문서에 get_or_create() 를 지원하며, 

해당 메소드를 이용하면 위에 try-catch를 사용한 방식보다 쉽게 구현이 가능하다.

obj, created = Person.objects.get_or_create(
    first_name='John',
    last_name='Lennon',
    defaults={'birthday': date(1940, 10, 9)},
)


만약 이미 존재하는 데이터일 경우 obj, created 파라메터를 출력해 보면 아래 값이 나오게 되고,

obj = Persion.object

created = False


없는 데이터일 경우 아래처럼 나온다.

obj = Persion.object

created = True




출처 : django docs


반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Django] static 파일 불러오기  (0) 2019.07.01
[Django] Vue.js 사용하기  (1) 2019.06.05
[Django] target wsgi script wsgi.py cannot be loaded as python module 에러 해결 방법  (0) 2019.01.29
[Django] 사용자 인증 시스템  (0) 2019.01.23
[Django] 사용자 인증 시스템 (2)  (0) 2019.01.23
'Python/Django' 카테고리의 다른 글
  • [Django] static 파일 불러오기
  • [Django] Vue.js 사용하기
  • [Django] target wsgi script wsgi.py cannot be loaded as python module 에러 해결 방법
  • [Django] 사용자 인증 시스템
S0PH1A
S0PH1A
반응형
S0PH1A
Web Programmer
S0PH1A
전체
오늘
어제
  • 전체
    • About Me
    • Python
      • Python
      • Django
    • DataBase
      • MySQL
      • MongoDB
    • JAVA
      • JAVA
      • Spring
    • WEB
      • JavaScript
      • HTML
      • CSS
      • Vue.js
      • React
      • Nest.js
      • Node.js
      • Electron
      • PHP
    • Linux
    • Algorithm
    • 기타
    • 생각
    • App
      • ReactNative

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • vue
  • javascript
  • Error
  • electron
  • vue.js
  • Python
  • nodejs
  • mysql
  • install
  • django

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
S0PH1A
[Django] Database 테이블에 데이터가 없을 때 만 추가하는 방법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.