更容易分享摇摆气流

wagtail-sharing的Python项目详细描述


摇尾共享

更轻松地共享wagtail草稿。

wagtail共享使共享wagtail草稿内容更容易,供没有wagtail管理网站访问权限的用户审阅。它允许您定义一个备用主机名和/或端口,以便在其中公开所有wagtail页面的最新版本。

例如,假设您的wagtail站点在http://mysite.com上运行。您已经在slug /path/to/draft创建了一个草稿页,但尚未发布。wagtail共享允许您在其他域中公开草稿页,例如http://sharing.mysite.com/path/to/draft rel="nofollow">http://sharing.mysite.com/path/to/draft

在另一个用例中,您可能在http://mysite.com/already/published/page" rel="nofollow">http://mysite.com/already/published/page上有一个已发布的页面,并且您已经进行了一些草稿更改。wagtail共享允许您在http://sharing.mysite.com/already/published/page" rel="nofollow">http://sharing.mysite.com/already/published/page上公开这些草稿更改,同时在常规域中保持相同的已发布内容。

当您有某种方法限制对http://sharing.mysite.com的访问时,这些示例显然最有效,例如只在专用网络上公开该子域。

wagtail共享允许您为定义的每个wagtail站点创建单独的共享站点。它还支持共享页面上可配置的可视横幅,以提醒审阅者内容可能与您发布的网站不同。

这个新逻辑只适用于 get 请求。其他http方法,如 post 遵从标准的wagtail处理。

设置

使用pip安装软件包:

$ pip install wagtail-sharing

将wagtailsharing添加为django设置中的已安装应用程序:

# in settings.pyINSTALLED_APPS=(...'wagtailsharing',...)

wagtail.contrib.modeladmin也是必需的,并且必须包含在已安装应用程序的列表中。

运行迁移以创建所需的数据库表:

$ manage.py migrate wagtailsharing

替换使用wagtail的catch all url模式:

# in urls.py
-from wagtail.core import urls as wagtail_urls
+from wagtailsharing import urls as wagtailsharing_urls

...

-urlpatterns.append(url(r'', include(wagtail_urls)))
+urlpatterns.append(url(r'', include(wagtailsharing_urls)))

共享站点

wagtail管理员现在在名为"共享站点"的设置下包含一个新的部分,允许用户定义他们希望如何公开最新的页面修订。

共享网站

默认情况下不存在共享站点。必须为每个wagtail站点手动创建共享站点,以使其最新版本可共享。每个共享站点都由唯一的主机名和端口号定义。 重要提示:不正确配置共享站点可能会公开草稿/私有内容。安装时要小心!

创建新的共享网站

在遵循上述设置步骤之后,您将应该能够创建一个新的共享站点,以便在本地django开发服务器中使用此功能。让我们假设您正在默认端口8000上运行本地开发服务器,并且在http://localhost:8000上有页面。我们希望在http://sharing.localhost:8000 rel="nofollow">http://sharing.localhost:8000上创建一个新的共享站点,在该站点上将公开最新的页面修订版。

要模拟以不同的主机名访问站点,您需要松开django的默认安全设置(仅允许在本地主机上访问)。编辑设置文件(例如 myproject/settings/local.py )以添加以下内容:

ALLOWED_HOSTS=['*']

验证您是否可以访问http://sharing.localhost:8000" rel="nofollow">http://sharing.localhost:8000"上的本地服务器。您应该会看到与http://localhost:8000" rel="nofollow">http://localhost:8000"上相同的内容,因为您尚未为默认站点启用wagtail共享。

为此,在wagtail管理中的"设置,共享站点"下,为默认站点创建一个新的共享站点,其主机名为sharing.localhost ,端口为 8000

新共享网站的网站:localhost[default]";,主机名:sharing.localhost,端口:8000";;src=

您最新的页面修订(包括草稿)现在应该可以在http://sharing.localhost:8000上找到。

横幅

在Wagtail共享网站上查看的网页添加了一个简单的横幅,提醒审阅者当前发布的内容可能与正在查看的内容不同。

banner

可以通过设置 settings.wagtailsharing_banner=false来禁用此行为。横幅模板可以通过在 wagtailsharing/banner.html 提供替代模板文件来覆盖,类似于如何支持 wagtailadmin模板覆盖

共享链接

页面的共享url可以通过将其 页面 实例传递到 wagtailsharing.helpers.get_sharing_url 来检索。如果未配置共享站点或指定的页无法路由到共享站点,则此方法返回 none

共享页面还将有一个新的下拉菜单选项,可从Wagtail页面资源管理器链接到此共享URL。

下拉式共享链接

挂钩

< Buff行情>

与普通的页面服务一样,共享页面的服务继续遵循wagtail内置的 before-serve-page hook.

此项目添加了这些附加挂钩:

在共享页面之前

在页面的最新版本即将提供服务之前调用,就在调用其 serve() 方法之前调用。就像 在服务页面之前一样,这个钩子被传递给页面对象、请求对象以及将被传递给页面的 服务()方法的 参数和 夸格斯。如果callable返回一个 httpresponse ,则该响应将立即返回给用户。

此挂钩可用于将共享限制为仅某些页面类型,或在共享时修改页面内容。

fromwagtail.coreimporthooks@hooks.register('before_serve_shared_page')defmodify_shared_title(page,request,args,kwargs):page.title+=' (Shared)'

服务共享后页面

在调用页的 serve() 方法之后但在将响应返回给用户之前调用。这个钩子传递给page对象和 serve() 返回的响应对象。如果callable返回一个 httpresponse ,则该响应将立即返回给用户。

此钩子可用于直接修改响应内容,例如添加自定义头或更改生成的HTML。此挂钩用于实现上述通知横幅。

fromwagtail.coreimporthooks@hooks.register('after_serve_shared_page')defadd_custom_header(page,response):response['Wagtail-Is-Shared']='1'

兼容性

已测试此项目是否与:

  • 巨蟒2.7、3.5、3.6
  • Django 1.8-1.11,2.0
  • 摇尾1.6-1.13,2.0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在TextView中对齐部分文本   带有iText和eTPKCS11的java PKCS#11签名。dll&SunPKCS11提供程序   java Intellij Idea找不到jar   java Chrome/Firefox和Jetty HTTPS   java我无法打包找不到的JavaFX应用程序模块   多线程Java:排序从异步任务检索的结果   java客户端/服务器socket不能与外部连接一起工作   java如何在单击“下一步”按钮时获取其他详细信息?   java组织。springframework。网状物客户RestTemplate应声明为@Bean,而plain@Autowired抛出错误   java如何绘制javax。摆动将ImageIcon转换为JavaFX。fxml呈现用户界面?   使用for循环的Java跟踪   java如何编码字符串以显示彩色文本(基于字符串中的前缀)   Java保存/打开文件对象   基于java复选框的搜索:使用尽可能多的“”动态生成准备好的语句作为选中复选框的计数   java为什么crawler4j随机挂起?