问题标签 [wagtail-streamfield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
383 浏览

wagtail - 如何在 `StreamField` 中自定义子类 `StructBlock` 的编辑界面

我有一个 wagtail 项目,它利用该sites框架并有一个页面作为每个site. 这些主页(不一定)需要子页面;它们的内容是从各种 streamfield 构建StructBlock的。

这些StructBlocks 中的每一个都有一组不同的字段,但也有一些共同的字段(例如show_in_navigation)。

为了不重复show_in_navigation BooleanBlockfor each StructBlock,我使用公共字段创建了一个BaseStructBlock,并为我的特定块对其进行了子类化:


那行得通-我show_in_navigation在所有继承自的块中都得到了我的BaseStructBlock-但我想为这些字段自定义编辑界面:

  • 目前,所有字段都BaseStructBlock出现在子类块的字段上方 - 我想让它们显示在特定字段下方- 已解决,请参阅更新BaseStructBlock
  • 我很高兴使用所有这些很酷的面板自定义,它们可以通过edit_handlers并制作我所有的常用字段collapsible,例如。

这可能吗?非常感谢所有提示。

PS:我确实注意到 StructBlock 的文档部分自定义编辑界面,但我看不出这如何解决我的需求......

PPS:这个项目:

  • 姜戈 (2.0.1)
  • 鹡鸰 (2.0b1)
0 投票
1 回答
1572 浏览

django - StreamField – TypeError: 'bool' 对象不可迭代

构建:Wagtail CMS(1.13.1) 和 python3.6 中的 Django(1.11)。

我正在尝试创建一个非常基本的 Streamfield 块(CardBlock),但不断收到类型错误。它与文档中的示例非常相似,但我无法让它工作......

django 正在尝试“get_db_prep_value()”。因此,Wagtail 尝试为 value 中的所有子项(streamchild 实例)“get_prep_value()” 如下所示。wagtail/wagtailcore/blocks/stream_block.py(第 257 行):

我不确定这个是多少。需要更改我的块类中的哪些内容以更正此变量?

Edit1-完全错误:

0 投票
2 回答
1042 浏览

django - 在 Wagtail 的 Page.get_children 的 StreamField 中访问 StructBlock

我尝试在页面中呈现子页面的 StreamField。我无法在 StreamField 中呈现不同的 StructField。这是我的代码

我的模板。(DefinitionPage 是此页面的子页面。)

post.title 没问题,但就像 post.body 中没有块一样。我尝试了很多东西,{% include_block block %} 肯定是错误的。我还尝试为 StructBlock 添加自定义模板,但没有成功。

我能怎么做 ?我正在使用 Django 2.0 和 wagtail 2.0(我是 wagtail 的新手,但我阅读了文档)最好的问候

0 投票
1 回答
144 浏览

python - ParentalKey 不在 StructBlock 中呈现

我正在尝试创建一个StructBlock我想在StreamField. 在StructBlock我这里有 4 个字段,即:

  • 背景样式
  • 标题
  • 图片
  • 类别

那是我的代码:

中的 3 个字段admin被正确呈现,除了category(根本不呈现)。可以看到,category基于modelcluster.fields.ParentalKey. 这可能是问题吗?

在此处输入图像描述

知道如何解决这个问题吗?

0 投票
2 回答
1188 浏览

django-templates - 将 wagtail 流场块依赖项插入模板的正确方法是什么?

我依靠模板继承系统来插入extra_css和/或extra_js进入我的页面:

base.html

page.html

这很好用,因此确实在它所属的地方插入了额外的 css/js。

如果我需要在streamfield其中一个块模板需要自定义 css/js 的地方使用,就会出现问题。在这种情况下,自定义资源与块一起插入,但不在base.html中的指定位置。

例如,如果上面示例中extra_jspage.html已添加到块模板中,那么select2会抱怨jquery不存在,这是完全正确的,因为它是与块一起插入的,但不是在Core JS之后的预期图书馆。

加载jquery两次会导致其他问题:https ://stackoverflow.com/a/25782679/2146346

其他选项是将所有块依赖项加载到页面中,但它会用冗余资源填充页面,因为并非页面中的每个块都streamfield可能在页面上使用。

还有其他选择吗?

0 投票
2 回答
255 浏览

wagtail - 在 TableBlock 单元格中添加链接

我在 StreamField 中使用 TableBlock。渲染页面,包括表格,都很好。但是无论如何允许用户在表格单元格中输入链接?只需添加一个 URL,它就会呈现为文本(正如我所期望的那样)。

这需要自定义渲染器吗?

0 投票
0 回答
543 浏览

django - ChoiceBlock 由其他 Wagtail 块组成?

我正在尝试构建轮播model

每张幻灯片都包含一个图像或视频和说明。

StreamBlock在这里使用,因为我找不到任何其他更合适的结构块类型,允许用户在图像和视频之间进行选择。理想情况下,我需要类似于 的东西ChoiceBlock,除了choices参数应该期望其他块类型。

这可行吗?或者至少有办法限制sub-blocks可以从 中插入多少个StreamBlock

0 投票
2 回答
2398 浏览

django - 如何从 wagtail 块模板中的 struct_block.StructValue 获取数据库 ID?

为 wagtail 块构建自定义模板StreamField我发现自己处于需要以某种方式将当前块的 ID 传递给其他视图的情况。

例如,当在特定块中单击 URL 时,登录页面view必须准确知道该 URL 是在哪个块中被单击的。然后view可以提取与特定块相关联但不一定在视觉上呈现给用户的其他信息。

我目前的策略是使用snippets,所以我可以传递 的 IDsnippet并且view可以获得相关但事先隐藏的数据。

这工作还不错,但人们必须在两个地方编辑内容,我必须看看他们悲伤的脸。

似乎value块模板上下文中的变量是 的一个实例wagtail.core.blocks.struct_block.StructValue,它使我可以访问块的所有字段,但它似乎没有显示它在数据库中的足迹。

此外value还有一个有趣的属性:value.block,它似乎是用于构造块的实际模型的一个实例,但我再次找不到任何有用的东西,例如idpk允许在数据库中识别该实例。

有办法吗?

0 投票
1 回答
58 浏览

wagtail - 缺少 Wagtail Streamforms 迁移破坏 Heroku 部署

由于“模型具有尚未反映在迁移中的更改”消息,我无法部署到 Heroku。我的应用程序迁移是最新的。问题是,由于某种原因,未部署以下目录中 wagtailstreams 包的迁移:

我尝试添加MIGRATION_MODULES = {'wagtailstreamforms': 'myapp.wagtailstreamforms_migrations'}到我的 base.py,makemigrations wagtailstreamforms再次运行和部署,但 Heroku 仍然没有运行任何迁移,并且仍然报告说相同模型的更改未反映在迁移中。

在不属于我的 git 目录的 wagtailstreamforms 等库中更新迁移的策略是什么?

0 投票
1 回答
61 浏览

wagtail - 如何在应用程序之间移动 StreamBlock

我正在重构一些代码,我希望将自定义 StreamBlock(或 StructBlock)从一个 django 应用程序移动到另一个。

这似乎比在应用程序之间迁移表要简单得多

  1. 将块声明移动到新应用程序
  2. 更新任何依赖项以指向新模块
  3. 更新旧迁移文件(导入等)以指向新应用
  4. ... 利润

这真的是我们需要做的吗?这里是否存在任何部署风险 - 或者这真的是纯粹的 python更改。