본문 바로가기

django2

[Django] Django의 ORM : get() 과 filter() 비교 Django ORM을 작성하면서 SQL문을 확인하곤 한다. 오류를 발견하면서 헷갈리는 get() 과 filter()을 간단히 정리한다. fetchone # ORM User.objects.get(id=1) #Return : Object # SQL SELECT * FROM accounts_user WHERE id=1; get()은 쿼리에 맞는 객체 하나( [0]번째 )만 반환해준다. filter().first()와 같다. 쿼리에 맞는 결과가 없을 시 DoesNotExist 에러가 발생한다. 그런데 get()은 객체를 반환한다는 것에 주의한다. 예를 들어보겠다. python manage.py shell 명령어를 입력하거나 PyCharm을 쓴다면 python console로 간다. 작성한 app의 models... 2020. 6. 17.
Django 데이터베이스 시간대 변경 모델을 정의하는 Field에서 auto_now 또는 auto_now_add 인자를 사용한다. DB에서 해당 필드 값을 확인해보면 삽입된 데이터가 한국 시간과 맞지 않는 것을 확인할 수 있다. 이는 settings.py에서 아래의 두 가지 사항을 모두 적용해주면 데이터베이스의 시간대를 한국 시간으로 바꿀 수 있다. TIME_ZONE = 'Asia/Seoul' USE_TZ = False USE_TZ=True라고 설정하면 장고가 알아서 시간대를 UTC(협정 세계시 시간)으로 조정한다. 즉, 화면에서 입력 받는 폼과 템플릿 처리 시에만 TIME_ZONE 항목에 설정한 시간대를 반영하고, DB에는 UTC로 데이터 입력 시간을 반영한다. 따라서 DB에도 설정해준 TIME_ZONE을 적용하고 싶다면 USE_TZ를 F.. 2020. 5. 19.