JSONField for PostgreSQL
아래 글에서 예제를 보여준다. Django 1.9 부터 JSONField 가 제공된다. 그러나 postgres 에 특화된 것이라 models module 에 있지는 않다. (아래 코드 참고)사용은 아래와 같다.
from django.contrib.postgres.fields import JSONField ... setting = JSONField()
JSONField 를 사용하기 위해서는
- PostgreSQL >= 9.4
- Psycopg2 ≥ 2.5.4.
이어야 한다. 자세한 내용은 아래 문서를 참고하자.
Django 1.9 이하에서도 사용할 수 있는 package 들이 존재한다. 구글에게 물어보면 된다.
Insert
아래 2가지 방법으로 insert 를 할 수 있다. 여기서 주의할 점은 jsonb 의 값이다. 필자는 처음에 모르고 string 으로 값을 넣어서 한참을 헤매었다. string 이 아니라 dict 를 넣어준다.
Dog.objects.create(name='Rufus', data={
... 'breed': 'labrador',
... 'owner': {
... 'name': 'Bob',
... 'other_pets': [{
... 'name': 'Fishy',
... }],
... },
... })
sdata = Dog()
sdata.name = 'Rufus'
sdata.data = {
... 'breed': 'labrador',
... 'owner': {
... 'name': 'Bob',
... 'other_pets': [{
... 'name': 'Fishy',
... }],
... },
... }
r = sdata.save()
댓글 없음:
댓글 쓰기