PostgreSQL 9.2는 기본 json 데이터 형식을 지원합니다. 이 데이터 유형을 모델 필드 중 하나로 사용할 수있는 장고 모델을 어떻게 만듭니 까?Django에서 PostgreSQL 9.2 JSON 데이터 형식을 사용하려면 어떻게해야합니까?
답변
[Nb. 많은 내가 너무 대답을 업데이트하는 생각 때문에 문제가 게시 된 이후 일어난 - 이제 새로운 장고의 PostgreSQL과 PostgreSQL 9.3 정보]
PostgreSQL을 포함하여 9.3
PostgreSQL의에서JSON 지원 (참조 doc 더 해지고있다 JSON 필드에서 데이터베이스 열처럼 검색 할 수있게되었습니다!이 지원은 여전히 기본 컬럼 연산자와 같습니다 (앞에서 살펴 보겠습니다). 장고 ORM을 통해 사용하는 것이 현명 할 것입니다
PostgreSQL 9.2
JSON 데이터 유형은 pgSQL 9.2에서 basically text입니다. 추가 된 것은 JSON 유효성 검사입니다. 유용하지만 헤드 터닝은 아닙니다.
은 ** 장고와 장고 고급 PostgreSQL을 지원
최근 Kickstarted backed development PostgreSQL을 JSON은 몇 달 전에 투자되었다. 여기에는 JSON 유형에 대한 고급 지원이 포함되지만 9.4에만 포함됩니다.
Postgres 팀은 최근 jsonb 데이터 유형 (바이너리 저장 JSON)에 대한 지원을 병합했습니다. Postgres 9.4가 종료 될 때까지 JSON 지원을 지연시키고 jsonb 데이터 유형 만 지원할 가능성이 매우 높습니다. 여기에는 여러 가지 이유가 있습니다. 가장 중요한 것은 현재의 json 데이터 유형이 구현에서 완전히 제한되어 있고, 동등성 연산자조차도 없다는 것입니다. 이것은 장고 어노테이션 코드의 일부가 유효하지 않은 쿼리 (이 보고서 참조)를 생성 함을 의미하며 __exact 룩업을 금지해야한다는 것을 의미합니다. 장고에서 이러한 모든 엣지 케이스를 적절하게 처리하려면 엄청난 복잡성이 따르고 텍스트 필드에 json을 저장하는 것 이상의 이점은 실제로는 상당히 제한적입니다. 9.4는 올해 말에 출시 될 예정이므로 JSON 필드는 1.8 릴리스에서만 기능 할 것입니다.
출처 : 또한 mjtamlyn blog
Psycopg 이제 기본적으로 JSON field (뿐만 아니라 HSTORE)를 지원합니다.
** 장고 DIY는 특별한 데이터베이스 유형을 사용하여 자신의 모델 필드를 만들 꽤 쉽게 장고
, field db_type()를 참조 **.
것을 주목하십시오 : 이것은 단지 pgSQL의에서 작동 할
- 은 - 현재 대부분 얻게 될 것이다
- (조건부 다른 데이터베이스에 '텍스트'형식을 반환 할 수 있습니다하지만) 당신은 당신의 코드 이식성을 제한하고 오직 데이터베이스 측 json 유효성 확인
- 그리고 물론 JSON 객체를 직접 가져 오는 즐거움!
하지만 당신이 정말로 파이썬에서 JSON 덤프 /로드 비용을 건너 뛰는되지 않도록 파이썬, JSON에 대한/직접/지원하지 않도록주의; 당신은 문자열 변환을 피할 수 있습니다 -하지만 내부적으로 점검하지 않았거나 실제적인 차이가 있는지를 벤치마킹하지 않았습니다.
PostgreSQL을 9.3으로 물건 같은 외모 당신은 또한 django JSONField에서 시작하고 이미 boilercode 판을 많이 얻을 수
더 흥미로운 될 수도 다음, 단순히 db_type
메소드를 오버라이드 (override).
더 흥미롭고 가치있는 데이터베이스 잠금 기능 (pgSql을 좋아합니다!)은 array_to_json
and row_to_json
을 사용하여 데이터를 JSON 구조로 다시 가져 오는 pgSQL의 옵션입니다. 질문의 범위를 벗어나는 질문 모음에 더 심각한 변경이 필요합니다.
- 1. django에서 css 파일을 사용하려면 어떻게해야합니까?
- 2. Django에서 D3 그래프로 JSON 데이터
- 3. django에서 postgreSQL 기록하기
- 4. Django에서 request.session sessionid를 찾아서 변수로 사용하려면 어떻게해야합니까?
- 5. linq에서 sql로 SQL 매개 변수에 올바른 데이터 형식을 사용하려면 어떻게해야합니까?
- 6. datamapper를 postgresql 데이터베이스와 함께 사용하려면 어떻게해야합니까?
- 7. Postgresql 배열 데이터 형식을 사용할 때
- 8. Winforms 디자이너에서 Nullable 형식을 사용하려면 어떻게해야합니까?
- 9. Objective-C에서 십진수 형식을 사용하려면 어떻게해야합니까?
- 10. 내부 클래스에서 paramertized 제네릭 형식을 사용하려면 어떻게해야합니까?
- 11. Automapper에서 데이터 세트를 사용하려면 어떻게해야합니까?
- 12. 기본 XML 외에도 더 많은 출력 형식을 사용하려면 어떻게해야합니까?
- 13. 9.2
- 14. Eclipse에서 JSON 편집기를 설치하고 사용하려면 어떻게해야합니까?
- 15. Google 애플리케이션 엔진에서 json 모듈을 사용하려면 어떻게해야합니까?
- 16. Django에서 Json 시리얼 라이저의 형식을 사용자 정의 하시겠습니까?
- 17. plv8에서 사용할 postgresql "json"데이터 형식에 날짜를 저장하는 방법은 무엇입니까?
- 18. JAXB Annotation Class로이 JSON 형식을 직렬화하려면 어떻게해야합니까?
- 19. 다른 웹 사이트에 JSON 형식을 저장하려면 어떻게해야합니까?
- 20. Django에서 MySQL 사용자 정의 함수 (UDF)를 사용하려면 어떻게해야합니까?
- 21. 저장된 문자열의 하위 필드를 구분하는 PostgreSQL 9.2 트리거
- 22. PostgreSQL 9.2 트리거가 다른 테이블에있는 데이터의 변경 사항을 기록합니다.
- 23. IOS 게임에서 루아를 데이터 스토리지로 사용하려면 어떻게해야합니까?
- 24. AWS RDS에서 데이터 저장소를 사용하려면 어떻게해야합니까?
- 25. ASP.NET MVC의보기에서 여러 데이터 세트를 사용하려면 어떻게해야합니까?
- 26. 더 일반적인 데이터 구조를 사용하려면 어떻게해야합니까?
- 27. 여러 데이터 세트를 JFreeChart와 함께 사용하려면 어떻게해야합니까?
- 28. MySQL에서 투명한 데이터 암호화를 사용하려면 어떻게해야합니까?
- 29. CKEditor에서 AngularJS 데이터 바인딩을 사용하려면 어떻게해야합니까?
- 30. PostgreSQL 테이블에서 열의 데이터 형식을 변경하는 방법은 무엇입니까?
json 유형의 필드에 대해 색인을 생성 할 수 있습니까? –
아래의 링크는 색인 생성을 허용하는 옵션을 보여줍니다. 기본적으로 텍스트를 char 필드로 변경합니다. https://github.com/bradjasper/django-jsonfield#other-fields – stormlifter
이 질문과 몇 가지 데이터 포인트가 있습니다. (1)'django-pgfields'는 JSON 데이터 형식을 사용하는 래퍼를 제공하지만 Postgres JSON 조회 기능에 대한 기본 액세스는 제공하지 않습니다. (2) 2014 년 2 월에 킥 스타터가 완전히 지원되어 Django 1.8의 대상 제공과 함께'django.contrib.postgres'의 모든 Postgres 데이터 유형에 대한 원시 Django 지원이 구현되었습니다. 공개적으로 발표 된 코드는 매우 기본적인 기능으로 만 진행되었습니다. https://www.kickstarter.com/projects/mjtamlyn/improved-postgresql-support-in-django – mirth23