Настроил кэширование на проекте, дело осталось за малым - по сигналам очищать кэш. Все статьи, которые нашел велят использовать from django.dispatch import dispatcher и dispatcher.connect. На деле же оказалось, что нет никакого метода connect. Покопался поглубже и обнаружил, что можно делать так: dispatcher.Signal.connect(del_cache(), signals.post_save, sender=Posts) При syncdb вызывает ошибку TypeError: unbound method connect() must be called with Signal instance as first argument (got NoneType instance instead). Содержание signals.py: from django.core.cache import cache def del_cache(): cache.delete('bycat') cache.delete('pages')

задан 23 Янв '12, 09:50

fixer's gravatar image

fixer
56712
Одобрено: 50%

изменено 23 Янв '12, 09:51


Ваш код в файле models.py скорее должен выглядеть примерно так для модели Pages:

from django.db.models.signals import post_save
# тут описание самой модели
...
# DISPATCHERS
def del_cache(sender, **kwargs):
    cache.delete('pages')

post_save.connect(del_cache, sender = Pages)
Постоянная ссылка

отвечен 24 Янв '12, 11:39

Berg's gravatar image

Berg ♦♦
5565813
Одобрено: 77%

Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

По RSS:

Ответы

Ответы и комментарии

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованый список: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • основные теги HTML, также поддерживаются

Теги вопроса:

×19
×2

заданые вопросы: 23 Янв '12, 09:50

просмотренные вопросы: 3,181 times

последние обновления: 24 Янв '12, 11:39