У меня большой проект Django с несколькими взаимосвязанными проектами и большим количеством кэширования. В настоящее время в нем есть файл, в котором хранятся вспомогательные функции кэша. Так, например, get_object_x (id) проверит кэш для этого объекта, и если его там нет, перейдите в БД, извлеките его оттуда и верните, кэшируя по пути. Этот же шаблон используется для кэширования групп объектов, а файл также используется для методов аннулирования.
Однако при импорте между приложениями возникла проблема. В файле моделей приложений есть несколько вспомогательных функций, для которых мы хотим использовать кеш, и файл cache_helpers, очевидно, должен импортировать файл моделей.
Итак, мой вопрос: как лучше сделать это, чтобы не подвергать код круговым проблемам импорта (или, может быть, просто более умному способу в целом)? В идеале мы могли бы сделать недействительным лучше и менее ручным способом. Я предполагаю, что лучше всего начать с использования пользовательских менеджеров и сигналов Django, полностью избавившись от файла cache_helpers, но есть ли у кого-нибудь лучшие предложения или указания относительно того, где искать?