Как стать автором
Обновить
6
0

Пользователь

Отправить сообщение
Да, действительно, пишется много похожего кода get, if not — set, думаю сделать примерно такую функцию-хелпер:

def get_post(self, post_id):
    post = get_cached(
        key="post_detail_%s" % post_id,
        # сделать чтобы ключ был опциональным и генерировался при необходимости
        get_value=lambda: Post.objects.select_related('author').get(pk=post_id),
        # указываем выражение для получения значения
        get_depends_on=lambda post: [post, post.author],
        # указываем выражение для получения зависимостей с полученным значением в качестве аргумента
        timeout=10,
    )
    return post
cacheops очень крутой, я им как раз пользовался до этого, но все равно не хватало контроля за процессом инвалидации.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность