"""باطل‌کردنِ کشِ لیستِ پلن‌ها با هر تغییرِ Plan (از ادمین).""" from django.core.cache import cache from django.db.models.signals import post_delete, post_save from django.dispatch import receiver from .models import Plan # کلید فقط یک‌جا تعریف می‌شود (views). تا ۲۰۲۶-۱۰-۰۳ این‌جا یک نسخه‌ی جدا ('v1') بود که # با v3 شدنِ کلیدِ views جا ماند: ذخیره‌ی پلن در ادمین کش را پاک نمی‌کرد و اپ تا یک ساعت # قیمتِ قدیم را نشان می‌داد در حالی که سفارش با قیمتِ تازه ساخته می‌شد (بازتولید شد). from .views import PLANS_CACHE_KEY @receiver(post_save, sender=Plan, dispatch_uid='subscription_invalidate_plans_cache_on_save') @receiver(post_delete, sender=Plan, dispatch_uid='subscription_invalidate_plans_cache_on_delete') def _invalidate_plans_cache(sender, **kwargs): cache.delete(PLANS_CACHE_KEY)