未提供项目描述
项目描述
wagtailpurge
从Wagtail CMS内部触发缓存清除。该应用程序已针对与Django >= 3.2和Wagtail >= 2.16的兼容性进行测试。
- Django >= 3.2
- Wagtail >= 2.16
开始使用
- 使用
pip install wagtailpurge
安装此应用程序 - 将
wagtailpurge
添加到您的INSTALLED_APPS
- 在shell中,运行
python manage.py migrate wagtailpurge
以创建必要的数据库表 - 登录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!"
一旦您定义了自定义模型
- 请确保包含更新后的
models.py
的应用(例如,"myproject.purge"
)包含在您项目中的INSTALLED_APPS
设置中。 - 从shell中,运行
python manage.py makemigrations appname
以为您的应用创建数据库迁移。 - 从shell中,运行
python manage.py migrate
将迁移应用于您的数据库。 - 登录Wagtail,并在清除菜单中查看您的新选项 :)
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
wagtailpurge-1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4ca94d678c28118cc5405770399e2e727cced461dea5397d5664f488ec9f832 |
|
MD5 | f53b31cad2c46205aefc45ddb5d224ad |
|
BLAKE2b-256 | b79707f7333f46b87ac832cc88724804a091b9b66e3a117db790624a49b940ce |
wagtailpurge-1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2ab510d51e2d3dd1935a60255a387b699bc7551914917a5ffa54348ec0b6fcb |
|
MD5 | 34d7ca421a1b4a8d0c1fbc81baf5512c |
|
BLAKE2b-256 | 1ba903030e19fb36f6bd52b87c10f4062ea234017ea02471e963e90a33f2c1e2 |