django-cache-tasfiye-kanca önbellek kaybedilmemesi işlemek için bir yeniden Django uygulaması.
Bu uygulama temelde kolayca gerektiğinde ön-uç önbelleği geçersiz model geri aramalar kanca için bir mekanizma sağlar.
Şu anda, sadece bir vernik arka uç uygulanır, ancak tasarım akılda diğer olası arkauçlu oluşturuldu.
Kullanım
Senin INSTALLED_APPS için 'cache_purge_hooks' ekleyin.
#our hayali modeli
sınıf Mesaj (models.Model):
& Nbsp; title = models.CharField (max_length = 200)
& Nbsp; sümüklüböcek = models.SlugField (benzersiz = true, max_length = 200)
& Nbsp; Vücut = models.TextField (boş = true, true = null)
cache_purge_hooks ithalat cache_purge_hook gelen
cache_purge_hook (Mesaj)
Yukarıda gösterildiği gibi, cache_purge_hooks modülü fonksiyonu cache_purge_hook içerir. İlk argüman olarak bir model geçmek. önbellek mekanizması modeli örneğinin get_absolute_url () yöntemine domuz-arkaları ve belirli url için arka uç önbelleğini temizler.
Herhangi bir örnek birden ilgili adresler varsa, geçersiz adresler listesini döndüren bir özel get_absolute_urls () yöntemini tanımlar:
Sınıf Kategorisi (models.Model):
& Nbsp; name = models.CharField (max_length = 200)
& Nbsp; sümüklüböcek = models.SlugField (benzersiz = true, max_length = 200)
& Nbsp; title = models.CharField (max_length = 127, boş = true)
& Nbsp; def get_absolute_url (öz):
& Nbsp; & nbsp; & nbsp; Ters ("kategori", kwargs = {return
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Kategori": self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; def get_absolute_urls (öz):
& Nbsp; & nbsp; & nbsp; gau = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; [('blog_home') ters GAÜ] dönmek
Yukarıdaki modelde, bir blog yazısı Kategori modeli var. Bu get_absolute_url () yöntemi urls.py tanımlanan belirli bir adlandırılmış rota bağlıdır, ama kategoriye herhangi bir değişiklik de blog ana sayfasında yansıtılması gerekir (diyelim örneğin, ana sayfa tüm kategorilerde bir etiket bulutu içerir). Bu bilgiler değiştiğinde o sayfa geçersiz olması gerekir.
Ayrıca açıkça get_absolute_url () değerini kapmak gerekir dikkat edin. Bu var) (get_absolute_urls eğer denilen almazsınız.
Senin sevme değilse, ayrıca bir örneğini alır ve adresler listesini döndüren bir işlev purge_related_blog için 2. argüman olarak iletebilirsiniz.
Örneğin:
facebook_comments.models gelen FacebookCommentCache ithal
def purge_related_blog (örnek):
& Nbsp; pr = urlparse.urlparse (instance.url)
& Nbsp; [pr.path] dönmek
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Yukarıdaki durumda, sitenin başka yeniden app (facebook_cached_comments) kullanan çünkü bu da yararlıdır. . Bu) (bir get_absolue_urls sağlamak için üçüncü taraf kodu hack daha iyidir
Gereksinimler :
- Python
- Django
- python-vernik
Yorum Bulunamadı