跳转到主要内容

未提供项目描述

项目描述

wagtailpurge

从Wagtail CMS内部触发缓存清除。该应用程序已针对与Django >= 3.2和Wagtail >= 2.16的兼容性进行测试。

  • Django >= 3.2
  • Wagtail >= 2.16

开始使用

  1. 使用pip install wagtailpurge安装此应用程序
  2. wagtailpurge添加到您的INSTALLED_APPS
  3. 在shell中,运行python manage.py migrate wagtailpurge以创建必要的数据库表
  4. 登录Wagtail并查找清除菜单项 :)

默认情况下,只有超级用户可以提交清除请求,但可以轻松地将个别请求类型的权限应用到您现有的组中,以便其他人可以使用该功能。

我可以清除什么?

1. Django缓存

利用Django的低级缓存API清除项目CACHES设置值中的缓存。

注意:此选项仅当CACHES包含至少一个项目时才可用。

2. 单个URL

使用Wagtail的wagtail.contrib.frontend_cache应用从CDN或下游缓存中清除您选择的单个URL。该URL可以是页面URL、硬编码的Django视图URL,甚至是完全不受应用控制的URL(只要它位于同一CDN/下游缓存账户管理的域上)。

注意:此选项仅在安装了wagtail.contrib.frontend_cache时可用。

3. Wagtail页面URL

使用Wagtail的wagtail.contrib.frontend_cache应用清除选定的页面URL从CDN或下游缓存。您可以通过选择清除所选页面的子节点或后代来轻松清除树的部分。

注意:此选项仅在安装了wagtail.contrib.frontend_cache时可用。

4. Wagtail图像渲染

删除您选择的Wagtail图像(或图像)的所有现有渲染。

如果安装了wagtail.contrib.frontend_cache应用,清除请求还将发送到您的CDN或下游缓存,以便为每个渲染的URL进行清除,使用户可以下载新鲜生成的版本。

5. 自定义清除请求

如果您想清除其他内容,可以添加自己的模型类,其中包含您需要的字段和功能。唯一的要求是您使用BasePurgeRequest作为基类,并添加一个process()方法来处理每个请求的实际“清除”操作。

以下是一个示例

# myproject/purge/models.py

from django.db import models
from django.forms.widgets import RadioSelect
from wagtailcache.models import BasePurgeRequest
from .utils import purge_chimp


class NaughtinessCategoryChoices(models.TextChoices):
    BITING = "biting", "Biting"
    SCRATCHING = "scratching", "Scratching"
    TOMFOOLERY = "tomfoolery", "General tomfoolery"


class NaughtyChimpPurgeRequest(BasePurgeRequest):
    # Add custom fields
    name = models.CharField(
        max_length=100,
        help_text="e.g. Peanuts",
    )
    category = models.CharField(
        max_length=30,
        choices=NaughtinessCategoryChoices.choices
    )

    # Add panels to show custom fields in the submit form
    panels = (
        FieldPanel("name"),
        FieldPanel("category", widget=RadioSelect())
    )

    # Optionally override the menu label and icon
    purge_menu_label = "Naughty chimp"
    purge_menu_icon = "warning"

    # Optionally add columns to the listing
    list_display_extra = ["name", "category", "custom_method"]

    # Optionally add filter options to the listing
    list_filter_extra = ["category"]

    def process(self) -> None:
        """
        Implements 'handling' for this purge request. The method doesn't need to
        return anything, and any exceptions raised here will be logged
        automatically.
        """
        purge_chimp(self.name, self.category)

    def custom_method(self) -> str:
        """
        Include non-field columns in the listing by adding a model
        method to return what you need, and including the method name
        in `list_display_extra`.
        """
        return "BANANA!"

一旦您定义了自定义模型

  1. 请确保包含更新后的models.py的应用(例如,"myproject.purge")包含在您项目中的INSTALLED_APPS设置中。
  2. 从shell中,运行python manage.py makemigrations appname以为您的应用创建数据库迁移。
  3. 从shell中,运行python manage.py migrate将迁移应用于您的数据库。
  4. 登录Wagtail,并在清除菜单中查看您的新选项 :)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

wagtailpurge-1.0.tar.gz (18.3 kB 查看哈希值)

上传时间

构建分布

wagtailpurge-1.0-py2.py3-none-any.whl (21.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面