Настроил кэширование на проекте, дело осталось за малым - по сигналам очищать кэш. Все статьи, которые нашел велят использовать 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 Янв, 09:50

fixer's gravatar image

fixer
564
Одобрено: 33%

изменено 23 Янв, 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 Янв, 11:39

Berg's gravatar image

Berg ♦♦
3545
Одобрено: 83%

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

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

По 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, также поддерживаются

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

×12
×2

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

просмотренные вопросы: 128 times

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