Django cache.set () verursacht einen doppelten Schlüsselfehler

Meine Django-Site hat kürzlich Fehler aus meinem Caching-Code geworfen, und ich kann nicht herausfinden, warum ...

Ich rufe:

from django.core.cache import cache
cache.set('blogentry', some_value)

Und der von Django geworfene Fehler ist:

TransactionManagementError: This code isn't under transaction management

Betrachtet man jedoch die PostgreSQL-Datenbankprotokolle, so scheint dies auf diesen Fehler zurückzuführen zu sein:

STATEMENT:  INSERT INTO cache_table (cache_key, value, expires) VALUES (E'blogentry', E'pickled_version_of_some_value', E'2009-07-27 11:10:26')
ERROR:  duplicate key value violates unique constraint "cache_table_pkey"

Für das Leben von mir kann ich nicht herausfinden, warum Django versucht, ein INSERT anstelle eines UPDATE zu machen. Irgendwelche Gedanken?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage