반응형
[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 |