2012-09-18 4 views
0

User 필드가 balance이고 장황한 balance_last_updatedDateTimeField을 유지합니다.Django : 원자 DateTimeField 읽기 및 쓰기

잔액 경쟁 조건을 무료로 업데이트하려면 원자 적으로 읽고 내 장고보기에서 balance_last_updated을 설정해야합니다. 그런 식으로 균형을 업데이트하는 모든 스레드는 별개의 기간 (올바른?) 동안 그렇게합니다.

어떻게하면됩니까? MySQL MyISAM 테이블을 사용하고 있는데, 이는 seem to not support Django transactions입니다.

+0

MyISAM은 Django의 트랜잭션 핸들링이 아닌 * 모든 트랜잭션을 지원합니다. –

답변

2

장고 1.4의 경우 select_for_update을 사용하면 장고 1.4를 사용할 수 있습니다. 그러나 데이터베이스 백엔드가 트랜잭션을 지원하는 경우 만 허용됩니다. MyISAM은 그러지 않으므로 원 자성 (또는 ACID 일반적으로)이 프로젝트에서 중요하다면 InnoDB 엔진이나 PostgreSQL으로 전환하는 것이 좋습니다.