나는 캐싱의 일종이라고 생각 행동을 통해 온,하지만 나를 속여 데이터베이스 트랜잭션으로 밝혀졌다.
나는 다른 프로세스에서, 항목이 데이터베이스에 추가됩니다 된 문제가 있고, 나는 다른 프로세스의 진행 상황을 모니터하고 싶었다, 그래서 장고 쉘을 열고 발행 한 다음
>>> MyData.objects.count()
74674
>>> MyData.objects.count()
74674
값이 실제로 데이터베이스에있는 경우에도 변경되지 않았습니다. 나는 최소한 내가 MySQL & django 셋업을 가지고 있었고 트랜잭션에 있었고 트랜잭션을 열었을 때 데이터베이스의 "스냅 샷"만 볼 것이라고 생각했다.
django에서보기 때문에 autocommit 동작이 정의되었으므로 다음 번에보기가 호출 될 때마다 다른 트랜잭션에서 스냅 샷을 볼 수 있도록 각보기에 적합합니다. 그러나 자동으로 커밋되지 않은 코드 조각의 경우이 트랜잭션에서 만들어진 코드를 제외하고 db의 변경 사항을 볼 수 없습니다.
그냥이 상황에 올 수있는 사람을 위해이 답변을 던질 것이라고 생각했습니다.
는 해결 수동과 같이 할 수있는 트랜잭션을 커밋하려면
>> from django.db import transaction
>> transaction.enter_transaction_management()
>> transaction.commit() # Whenever you want to see new data
가능한 중복 http://stackoverflow.com/questions/3346124/how-do-i-force- django-to-ignore-any-caches-and-reload-data) –