Django-кеш-продувки гачків багаторазові Django додаток для обробки кеш став недійсним.
Ця програма в основному забезпечує механізм легко підключити в модель зворотних викликів недійсним свій зовнішній кеш при необхідності.
В даний час тільки лак базова реалізується, але проект був створений з іншими можливими движків на увазі.
Використання
Додати "cache_purge_hooks по вашим INSTALLED_APPS.
#our робити вигляд, модель
клас Post (models.Model):
І NBSP; назва = models.CharField (max_length = 200)
І NBSP; Куля = models.SlugField (унікальний = True, max_length = 200)
І NBSP; Тіло = models.TextField (порожній = True, NULL = True)
від cache_purge_hooks cache_purge_hook імпорту
cache_purge_hook (Post)
Як було показано вище, модуль cache_purge_hooks містить функцію cache_purge_hook. Перейдіть в якості першого аргументу модель. Механізм кеш скарбнички захисники по методу моделі примірника get_absolute_url () і очищає кеш адміністратора для цього конкретного URL.
Якщо який-небудь екземпляр має кілька пов'язаних URL-адрес, визначити метод користувальницькі get_absolute_urls (), який повертає список URL-адрес, для скасування:
клас, категорія (models.Model):
І NBSP; Ім'я = models.CharField (max_length = 200)
І NBSP; Куля = models.SlugField (унікальний = True, max_length = 200)
І NBSP; назва = models.CharField (max_length = 127, порожній = True)
І NBSP; Def get_absolute_url (само):
І NBSP; & NBSP; & NBSP; повернутися назад ("категорію", kwargs = {
І NBSP; & NBSP; & NBSP; & NBSP; & NBSP; "Категорія": self.slug
І NBSP; & NBSP; & NBSP; })
І NBSP; Захист get_absolute_urls (Self):
І NBSP; & NBSP; & NBSP; ГАУ = self.get_absolute_url ()
І NBSP; & NBSP; & NBSP; повернутися [гау, зворотний ('blog_home'),]
У розглянутої вище моделі, у нас є категорія моделі блог пости. Це метод get_absolute_url () прив'язаний до конкретної імені маршруту, визначеного в urls.py, але будь-яка зміна категорії також повинні бути відображені в блог Домашня сторінка (скажімо, наприклад, домашньої сторінки містить хмара тегів всіх категорій). Це сторінка повинна бути визнана недійсною при зміні цієї інформації.
Зверніть увагу, ви повинні також чітко захопити get_absolute_url () значення. Це не буде викликана, якщо get_absolute_urls () існує.
Якщо це не по своєму смаку, ви також можете передати в якості другого аргументу purge_related_blog функцію, яка приймає екземпляр і повертає список URL-адрес.
Наприклад:
від facebook_comments.models імпортувати FacebookCommentCache
Def purge_related_blog (екземпляр):
І NBSP; Pr = urlparse.urlparse (instance.url)
І NBSP; повернутися [pr.path,]
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Це також корисно, тому що і в попередньому випадку, сайт, використовуючи інший багаторазово використовуваний додаток (facebook_cached_comments). . Це набагато краще, ніж злом на код сторонніх щоб забезпечити get_absolue_urls ()
Вимоги
- Python
- Django
- Python-лак
Коментар не знайдено