Мой сайт Джанго недавно начал бросать ошибки из моего кода кэширования, и я не могу понять, почему ...Джанго cache.set() вызывает дубликат ключа ошибки
Я называю:
from django.core.cache import cache
cache.set('blogentry', some_value)
И ошибка брошена Джанго является:
TransactionManagementError: This code isn't under transaction management
Но, глядя на журналы базы данных PostgreSQL, кажется, проистекают из этой ошибки:
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"
Для жизни я не могу понять, почему Django пытается сделать INSERT вместо UPDATE. Есть предположения?
Не кэшируется ли база данных, чтобы победить цель кеширования? – thedz
Зависит от того, что вы кешируете. –
Я отредактировал его на «blogentry», но на самом деле он кэширует все множество связанных данных для виджета боковой панели блога. –