در جنگو-کش-پاکسازی-قلاب یک برنامه قابل استفاده مجدد جنگو که مسئولیت رسیدگی به بطلان کش است.
این برنامه در واقع یک مکانیزم به راحتی به تماس مجدد مدل قلاب به باطل کش جلویی خود را هنگامی که مورد نیاز را فراهم می کند.
در حال حاضر، تنها باطن لاک الکل زدن به اجرا است، اما طراحی با سایر پایانه (Backend) ممکن است در ذهن ایجاد شده است.
استفاده
اضافه کردن 'cache_purge_hooks به INSTALLED_APPS خود را.
مدل وانمود #our
کلاس ارسال (models.Model):
و nbsp؛ عنوان = models.CharField (MAX_LENGTH = 200)
و nbsp؛ مثل حلزون حرکت کردن = models.SlugField (منحصر به فرد = واقعی، MAX_LENGTH = 200)
و nbsp؛ بدن = models.TextField (خالی = واقعی، تهی = واقعی)
از cache_purge_hooks واردات cache_purge_hook
cache_purge_hook (ارسال)
همانطور که در بالا نشان داده شده است، ماژول 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 (منحصر به فرد = واقعی، MAX_LENGTH = 200)
و nbsp؛ عنوان = models.CharField (MAX_LENGTH = 127، خالی = واقعی)
و nbsp؛ دف get_absolute_url (خود):
و nbsp؛ & nbsp؛ در و nbsp؛ بازگشت به عقب ("رده"، kwargs = {
و nbsp؛ & nbsp؛ از & nbsp؛ از & nbsp؛ در و nbsp؛ "رده": self.slug
و nbsp؛ & nbsp؛ در و nbsp؛ })
و nbsp؛ get_absolute_urls دف (خود):
و nbsp؛ & nbsp؛ در و nbsp؛ Gau را = self.get_absolute_url ()
و nbsp؛ & nbsp؛ در و nbsp؛ بازگشت [Gau را، معکوس ('blog_home')،]
در مدل فوق، ما یک رده مدل پست وبلاگ. این روش get_absolute_url () به نام مسیر خاص تعریف شده در urls.py گره خورده است، اما هر گونه تغییر به رده نیز باید در صفحه وبلاگ خانه منعکس شود (مثلا به عنوان مثال، صفحه اصلی شامل یک ابر برچسب از مجموعه ها). این صفحه باید باطل در زمانی که این اطلاعات تغییر می کند.
توجه کنید که شما نیز باید به صراحت get_absolute_url () ارزش گرفتن. این خواهد شد اگر get_absolute_urls به نام نه () وجود دارد.
در صورتی که به میل شما نیست، شما همچنین می توانید به عنوان یک استدلال 2 به purge_related_blog یک تابع است که طول می کشد یک نمونه و یک لیست از آدرس ها را برمی گرداند منتقل می کند.
برای مثال:
از facebook_comments.models وارد FacebookCommentCache
دف purge_related_blog (به عنوان مثال):
و nbsp؛ روابط عمومی = urlparse.urlparse (instance.url)
و nbsp؛ بازگشت [pr.path،]
cache_purge_hook (FacebookCommentCache، purge_related_blog)
این نیز مفید است چرا که در صورت بالا، سایت با استفاده از یکی دیگر از برنامه های قابل استفاده مجدد (facebook_cached_comments). این بسیار بهتر از هک کردن یک کد شخص ثالث به ارائه get_absolue_urls ()
مورد نیاز:.
پایتون
جنگو
پایتون-لاک الکل زدن به
نظر یافت نشد