Так. продолжаем процесс употребления кеширования, основанного на сигналах в django. О теории уже было сказано достаточно, перейдем к практике, а для этого немного пофантазируем.
Итак, у нас есть приложения блога и в нем такие модели:
class Post( models.Model ):
title = models.CharField(max_length=100)
date = models.DateTimeField(default=datetime.now)
text = models.TextField()
class Comment( models.Model ):
post = models.ForeignKey( Post, related_name = "comments" )
text = models.TextField()
Теперь как полагается в хорошем блог движке, мы хотим получить последние 5 постов для того чтобы сообщить о них постетителю. Для этого напишем простую функцию
def get_latest_posts():
return Post.objects.all().order_by( "-date" )[ :5 ]
Отлично, функция готова и мы её можем применять в нужном нам месте. Но зачем каждый раз мучить базу и просить её вернуть последние посты? Ведь пишу то я не часто (ну так получается:)), поэтому можно это дело закешировать и не тратить ресурсы попусту, т.к. они не часто обновляются.
Но классический вариант с таймаутом тут не очень удобен: если сделать ...

