【问题标题】:Wagtail CMS: Embeds cannot be found for all sources except YouTubeWagtail CMS:无法为除 YouTube 之外的所有来源找到嵌入
【发布时间】:2019-12-11 04:01:57
【问题描述】:

我已经开始使用 Wagtail 作为 PHP 解决方案的替代方案。我按照文档和一个小教程安装了 Wagtail 以开始使用。我的 settings/base.py没有自定义设置关于 WAGTAILEMBEDS_FINDERS

到目前为止我对主页所做的唯一更改:

from django.db import models

from wagtail.core.models import Page
from wagtail.core.fields import RichTextField
from wagtail.admin.edit_handlers import FieldPanel

class HomePage(Page):
    templates = "home/home_page.html"
    banner_title = models.CharField(max_length=100, blank=False, null=True)
    banner_imgname = models.CharField(max_length=100, blank=False, null=True)
    body = RichTextField(blank=True)
    content_panels = Page.content_panels + [
        FieldPanel("banner_title"),
        FieldPanel("banner_imgname"),
        FieldPanel('body', classname="full"),
    ]

这是简单的主页模板:

{% extends "base.html" %}
{% load static %}
{% load wagtailcore_tags %}

{% block body_class %}template-homepage{% endblock %}

{% block content %}
    {{ self.banner_title }}
    {{ self.imgname_title }}
    {{ page.body|richtext }}
{% endblock %}

CharFieldRichTextField 的所有简单文本输出都可以正常工作,但我最需要的是 嵌入功能 (博客分享各种嵌入的东西),不能正常工作。

我尝试过 Soundcloud、Deviantart、Vimeo、Instagram。只有 YouTube 嵌入。 (为了确认所选链接没有其他限制,我将它们嵌入到 WP 安装的编辑器中(抱歉 :-))。

还有这个issue on github,但我认为这不仅仅是一个 Instagram 问题,而是一个普遍的嵌入问题。我按照那里提供的给定链接,但没有找到解决方案,一切“似乎”都是正确的。

问题是:这是个问题吗?做某事。错误的? 是否有使用其他编辑器可以推荐的可靠、稳定的解决方法?我真的很想坚持 Wagtail 并愿意在学习上付出更多努力,但非常需要这个功能。

我的设置:

  • Django 2.2.3
  • 鹡鸰 v2.6
  • OSX 10.12.6
  • Python 3.7.3
  • 浏览器:经过 Firefox 和 Chrome 测试(最新)

编辑:

我认为这只是一个 RichTextField 问题,但我尝试了另一种嵌入 {% embed %} 标签的方法,例如 suggested in the docs,这对我也不起作用:在 models.py 我添加了:

embedcontent_url = models.URLField("Embed Content URL", blank=True)

在 home_page.html 中:

{% load wagtailembeds_tags %}

{% embed page.embedcontent_url %}

再说一次:如果我在我的 URLfield 中保存 YouTube 链接,它会将视频嵌入到前端,但如果我选择任何其他默认提供程序,它将不会呈现任何内容。

任何想法,如果我需要导入或扩展其他任何东西以使嵌入工作?

谢谢

可能相关:“How Embed Gist in Wagtail?

【问题讨论】:

    标签: python django wagtail oembed


    【解决方案1】:

    好的,所以问题通过the github issue thread 解决了。

    问题与 Wagtail 无关(但与 OSX / Python SSL 证书 相关),但我会发布 the solution 以防其他人也遇到此问题。

    我必须转到我的 Python 安装文件夹(在我的例子中为 /Python 3.7)并双击文件 Install Certificates.command

    之后我重新启动服务器,嵌入请求现在工作正常并返回预期结果。

    【讨论】:

      【解决方案2】:

      如果您在设置 (WAGTAILEMBEDS_FINDERS) 中限制了嵌入“查找器”,那么这将产生所描述的效果。

      http://docs.wagtail.io/en/v2.1.1/advanced_topics/embeds.html#customising-the-provider-list

      您尝试过的提供程序确实显示在默认的oembed finders list 中,因此这不会造成问题。

      【讨论】:

      • 感谢@autopoietic 的调查。我已经探索了提供者列表文件,因为它在 github 问题中已链接。我确保我尝试过的所有链接都在那里(以及正则表达式匹配)。 WAGTAILEMBEDS_FINDERS 设置位于我项目的 2 个文件中:_init_.py - 它在其中查找此设置并在没有自定义设置时返回默认设置。还有 test_embeds.py。我没有在其他任何地方定义设置。几天前,我尝试按照文档定义自定义设置,只接受 instagram,即使那时也只接受 youtube - 接受的链接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2021-07-06
      • 2017-07-03
      相关资源
      最近更新 更多