【问题标题】:error 'makeHalloRichTextEditable is not defined' with Django form in Wagtail 1.10.1Wagtail 1.10.1 中的 Django 表单错误“未定义 makeHalloRichTextEditable”
【发布时间】:2017-06-01 06:00:16
【问题描述】:

我在 Django 1.11.1 和 Python 3.5.2 上运行 Wagtail 1.10.1。 我有一个 Django 表单,供人们在不成为用户的情况下向网站提交页面。

我添加了下一段以添加更多信息。

基本思想是未登录的人可以通过表单提交条目。这是显示错误消息的网页。信息提交后的管理视图显示没有此类错误。所有脚本文件都已正确加载。

我的开发机器(本地主机)上表单(不是管理页面)的错误消息是

Uncaught ReferenceError: makeHalloRichTextEditable is not defined at localhost/:136

表单 HTML 的相关部分如下所示

<label for="id_body">Content of the item.</label>
<textarea name="body" cols="40" id="id_body" rows="10">
</textarea><script>makeHalloRichTextEditable("id_body");</script>

在模板中该部分看起来像

{{ form.body.label_tag }}
{{ form.body }}
{{ form.body.errors }}

models.py文件的相关位是

class NewsPage(Page):
    body = RichTextField(blank=True)
    submitted_by = models.CharField(max_length=255)
    submitter_email = models.EmailField()

【问题讨论】:

  • makeHalloRichTextEditable 函数应该定义在文件 /static/wagtailadmin/js/hallo-bootstrap.js 中。您是否在 HTML 源代码中看到对该文件的引用?如果您直接在浏览器中访问该 URL,它会正确显示吗?
  • 我没有看到对该文件的引用,但如果我转到 URL,它确实会在浏览器中正确显示。
  • 由于显示错误的网页不是管理页面,因此没有加载管理脚本也就不足为奇了。我正在尝试将富文本字段(可在管理员中编辑为富文本)连接到标准文本区域 Django 表单字段(看起来像纯文本),以供未登录用户提交信息。

标签: django wagtail


【解决方案1】:

Wagtail 的富文本字段的 Javascript 代码是使用 Django 的 form media 机制引入的。如果您在 Wagtail 管理员之外重新使用富文本小部件,则需要通过在页面标题中添加诸如 {{ form.media.js }} 之类的标签(其中 @987654323 @ 是你的表单对象对应的模板变量)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多