2012-08-22 4 views
2

내 장고 프로젝트 중 하나에 HTSQL을 사용하려고합니다. 그 때문에 나는 HTSQL/Django 요구 사항을 제공하기 위해 HERE 주어진 절차를 따랐다. 그렇다면 HERE에서 예제/데모를 시도한 HTSQL 저장소를 복제했습니다. 데모 예제에서 사용되는 기본 db는 sqlite3입니다. Django v 1.4와 Django v 1.3.1 (장고 v 1.3.1의 settings.py에서 약간의 수정이 필요함)에서이 데모를 시도했습니다. 그것은 오류 다음 던졌습니다Django HTSQL TransactionManagementError와 PostgreSQL 백엔드

>>> from htsql_django import produce 
>>> query = "/polls_poll{question, total:=sum(polls_choice.votes)}" 
>>> for row in produce(query): 
>>> print "%s: %s" % (row.question, row.total) 

: 다음 HTSQL Django-gateway Blog의 지침에 따라, 나는 장고 프로젝트 쉘에서 다음과 같은 코드를 작성

전체 오류 추적이 pastebin

I에서 볼 수 있습니다

TransactionManagementError: This code isn't under transaction management 

내 자신의 새 프로젝트에서이 시도했지만 같은 오류가 발생했습니다. 당신이 장고 쉘에서 HTSQL를 사용하는 경우

답변

4

, 당신은 명시 적으로 트랜잭션을 열 수 있습니다

>>> from django.db import transaction 
>>> from htsql_django import produce 
>>> with transaction.commit_on_success(): 
...  query = "/polls_poll{question, total:=sum(polls_choice.votes)}" 
...  for row in produce(query): 
...  print "%s: %s" % (row.question, row.total) 

는 미안 문서는 그것에 대해 명확하지 않다. 향후 릴리스에서 변경 될 수 있습니다.

+0

감사합니다. Kirill Simonov, 지금은 잘 작동합니다. HTSQL은 실제로 매우 강력한 도구입니다. –

관련 문제