django-cache-prapūtimo kabliukai yra daugkartinio Django programai valdyti talpyklos negaliojančia.
Ši programa iš esmės numato mechanizmą, lengvai kablys į modelį skambučiais grįžtamąją netekti savo front-end talpyklą, kai reikia.
Šiuo metu yra įgyvendintas tik lako posistemės, bet dizainas buvo sukurtas su kitų galimų backends galvoje.
Naudojimas
Pridėti "cache_purge_hooks" į savo INSTALLED_APPS.
#our apsimesti modelis
klasė Post (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 200)
& Nbsp; šliužas = models.SlugField (unikalus = Tiesa, MAX_LENGTH = 200)
& Nbsp; kūno = models.TextField (tuščia = Tiesa, niekinis = True)
nuo cache_purge_hooks importo cache_purge_hook
cache_purge_hook (Pradėti)
Kaip nurodyta pirmiau, cache_purge_hooks modulis yra funkcija cache_purge_hook. Važiuokite kaip pirmojo argumento modelį. Laikinojoje mechanizmas piggy-backs modelio instancijos get_absolute_url () metodą ir išvalo posistemės talpyklą, kad ypač url.
Jei bet kuris atvejis turi daug panašių URL, apibrėžti pagal užsakymą get_absolute_urls () metodą, kuris grąžina URL paneigti sąrašą:
klasė kategorija (models.Model):
& Nbsp; vardas = models.CharField (MAX_LENGTH = 200)
& Nbsp; šliužas = models.SlugField (unikalus = Tiesa, MAX_LENGTH = 200)
& Nbsp; title = models.CharField (MAX_LENGTH = 127, Blankas = True)
& Nbsp; Def get_absolute_url (si):
& Nbsp; & nbsp; & nbsp; grįžti atvirkštinės ("kategorija", kwargs = {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Kategorija": self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; def get_absolute_urls (savarankiškai):
& Nbsp; & nbsp; & nbsp; uždaryta = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; grįžti [uždaryta, atvirkštinės (blog_home),]
Be pirmiau modelį, turime dienoraštyje Kategorija modelį. Tai get_absolute_url () metodas yra susijęs su konkrečiu vardu maršrutu apibrėžtą urls.py, bet jei į kategorijos pakeitimas taip pat turi būti atsižvelgiama į dienoraštį puslapis (tarkim pavyzdžiui, namų puslapyje yra Tag Cloud visų kategorijų). Tai puslapis, turi būti pripažinti negaliojančiais, kai ši informacija yra pakeista.
Atkreipkite dėmesį, jūs taip pat turi būti aiškiai patraukti get_absolute_url () vertę. Tai bus ne gauti vadinamas jei get_absolute_urls () egzistuoja.
Jei tai ne jūsų skonį, taip pat galite perduoti kaip 2 argumentas, kad purge_related_blog funkciją, kad mano atvejis ir grąžina URL sąrašas.
Pavyzdžiui:
nuo facebook_comments.models importuoti FacebookCommentCache
Def purge_related_blog (pavyzdžiui):
& Nbsp; pr = urlparse.urlparse (instance.url)
& Nbsp; grįžti [pr.path,]
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Tai taip pat naudinga, nes virš atveju svetainė yra naudojant vieną daugkartinio naudojimo programą (facebook_cached_comments). . Tai daug geriau, nei įsilaužimo iki trečiosios šalies kodą, siekiant pateikti get_absolue_urls ()
Reikalavimai :
- Python
- Django
- python-lakas
Komentarai nerastas