链接到 Wagtail CMS 中的特定页面

2024-03-12

在 Wagtail CMS 中,我不知道如何构建指向特定页面的链接。我想要我的模板中有一个(固定的,未创作的)链接BlogIndexPage to my BlogIndexArchivePage反之亦然。 在官方文档中pageurl http://wagtail.readthedocs.org/en/v1.0/topics/writing_templates.html?highlight=pageurl#internal-links-tag看起来很有希望:

{% load wagtailcore_tags %}
...
<a href="{% pageurl self.blog_page %}">

但我不明白这个符号blog_page,但是page-classes被命名为BlogPage or BlogIndexPage。我是否必须定义要链接到的页面models.py- 如果是这样:怎么办?


在给出详细答案之前,我会提出一个简单的建议:假设您已经为博客索引和博客存档页面提供了合理的 URL,例如/blog/ and /blog/archive/,有什么理由相信他们是ever会改变吗?如果没有,那就写一个硬编码<a href="/blog/">链接到您的模板上,然后忘记它。这可能看起来像是一种逃避,但你需要some将特定页面指定为博客索引的持久方式(无论是基于页面类型、ID 还是站点结构中的位置),通过 URL 进行此操作可能比您可以想到的任何其他机制更明智且面向未来和。毕竟,URL 应该是持久标识符......


好的。详细答案:

在示例中pageurl文档,self.blog_page只是一个引用 a 的变量Page目的。如果你有这样的设置,你会使用它,其中blog_page是页面的一个字段,指向其他页面:

class ExamplePage(Page):
    body = RichTextField()
    blog_page = models.ForeignKey('wagtailcore.Page')

    content_panels = Page.content_panels + [
        FieldPanel('body'),
        PageChooserPanel('blog_page'),
    ]

但是,在您的情况下,您希望以编程方式确定链接页面,而不是创作页面内容的一部分,因此您需要其他方式来获取相关Page object.

当你谈论“我的BlogIndexPage”,您暗示该类型的页面在任何时候都将存在于您的网站上。如果这确实是一个有效的假设,那么用于检索该页面的合适 Django 表达式将是:BlogIndexPage.objects.first()。 (如果这不是一个有效的假设,那么您需要自己决定您的网站将如何选择一个特定的 BlogIndexPage 作为the博客索引。)

您现在需要使该页面对象在您的模板上可用。做到这一点的一种方法是通过get_context method:

class ExamplePage(Page):
    body = RichTextField()

    def get_context(self, request):
        context = super(ExamplePage, self).get_context(request)
        context['blog_index'] = BlogIndexPage.objects.first()
        return context

这使得它可以作为变量在模板上使用blog_index,允许您编写:{% pageurl blog_index %}.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链接到 Wagtail CMS 中的特定页面 的相关文章

  • 在 wagtail 中使外部链接在新窗口中打开

    我最近实现了添加target blank 到这样的外部链接 hooks register after edit page def do after page edit request page if hasattr page body so
  • 图像模型数据迁移

    您好 这主要是 Google 群组中提出的问题的复制粘贴 感谢 Wagtail 文档 我能够了解如何构建自定义图像模型 但是 由于我有一个包含 500 多个内容的网站 我不想因为糟糕的数据迁移而搞乱整个事情 事实上 我不确定这里应该使用哪种
  • Django storages S3 - 存储现有文件

    我有 django 1 11 和最新的 django storages 使用 S3 后端进行设置 我正在尝试使用 AWS 图像链接作为起点 以编程方式实例化图像文件 我无法弄清楚如何通过查看源代码 文档来做到这一点 我假设我需要创建一个文件
  • Google 地图 API 错误:此 API 密钥无权使用此服务或 API。地点 API 错误:ApiTargetBlockedMapError

    我开始从我使用的 CMS 内的 Google 地图小部件收到此错误 This API key is not authorized to use this service or API Places API error ApiTargetBl
  • 如何在 Wagtail CMS 中添加对 ImageChooserBlock 的矢量图像支持?

    我希望能够上传 svg文件在ImageChooserBlock 默认情况下 svg通过 Wagtail 管理面板上传时格式验证失败 不支持矢量图形wagtail images 我正在使用 Wagtail 1 12 3 通过安装和配置解决wa
  • Puput(基于 Wagtail 的博客)- 文件在哪里?

    我已将 puput 博客添加到现有的 Django 项目中 我遵循了设置独立博客应用程序的所有步骤 https puput readthedocs io en latest setup html https puput readthedoc
  • 使用带有动态选择的 Wagtail“ChoiceBlock”,而不是硬编码列表

    我们有一个博客模型的设置 该模型与 BlogPageCategory 具有多对多关系 并且我们有一个 最近的博客文章 流字段块 可让您指定是否显示 X 最新博客文章的卡片 或来自特定类别的 X 最新博客文章 因此 我们从以下代码开始 fro
  • 在迁移中移动 Wagtail 页面

    我正在重组我的 Wagtail 应用程序 以删除其中仅包含单个项目的 IndexPage 并将该项目移至当前 IndexPage 父级的子级 基本上是从这个开始 Page IndexPage ChildPages 其中只有 1 个 to t
  • Wagtail:如何将模型实例传递给小部件并在模板中访问它

    我有一个基于 Wagtails 的模型Page模型 我正在将自定义小部件分配给模型字段之一 渲染管理视图时是否可以在小部件 HTML 模板中访问模型实例 我需要管理视图中的小部件来知道哪个 IDSimplePage该小部件所属 即获取值 p
  • Wagtail MultiSite - 交叉发布内容

    我目前正在通过单个 Wagtail 安装构建两个站点 这些网站适用于一家公司及其姊妹公司 内容有一些重叠 理想情况下 我们不想将相同的内容发布两次 特别是 我们在两个网站上都有一个活动页面 可能有与两家公司相关的活动 问题是 Wagtail
  • 如何在页面 API 中获取图像 url 或下载图像的 url,其中图像是由流场创建的?

    在我的 wagtail 应用程序中 我有一个流字段 用于使用 ImageChooserBlock 上传图像以及标题和文本 这意味着在单个流字段中我有一个标题 一个文本和一个图像上传输入 我正在尝试在其余框架的页面 API 中获取图像 url
  • 如何更改 django wagtail 的管理徽标

    我正在做一个小项目 我想我会付出wagtail http wagtail io 尝试一下 我现在想知道如何更改侧边栏中 wagtail 的管理徽标 下图左上图 我可以改变 static wagtailadmin images wagtail
  • Wagtail 为 MyPage 设置附加权限

    这里是鹡鸰新手 我试图为特定模型添加一些额外的权限 但 wagtail admin 中没有显示任何内容 我可以用 django 方式做到这一点 但我的印象是 wagtail 可以处理这种类型的权限 我在 wagtail 文档中找不到任何提示
  • 在 wagtail 中批量上传和创建包含图像的页面(迁移)

    我正在使用 wagtail 创建一个网站来替换某人现有的 weebly 网站 重新创建数百个页面实例并上传每个页面的每个图像需要花费几个小时 我已经有了我需要的页面模型 并且我的网站看起来很像 wagtail 文档中的入门教程 我想知道如何
  • 在 Wagtail 中创建可重用字段集的方法?

    我正在评估 Wagtail 看看是否能在我的公司中找到它与 Wordpress 和 Drupal 一起的位置 到目前为止 我认为它很有趣并且非常喜欢其中的很多内容 但是有一件事我真的很喜欢 但找不到方法来实现 我的商店使用模式库 原子设计
  • 在继承类中扩展 wagtail Streamfields

    我有一个抽象类 其中有 ha StreamField 我还有一个继承自 BasePage 的类 CustomPage 我希望 CustomPage 向内容添加新的 StructBlock 我怎么做 class BasePage Page c
  • wagtail 中的嵌套类别/InlinePanel

    我很难实现 嵌套类别 之类的东西 PageA Cat1 SubCat1 SubCat2 Cat2 SubCat1 所有类别和子类别都应可由编辑排序和编辑 我的猜测是这样的 class CategoryTestPage Page conten
  • Wagtail / Hallo.js - 添加插件但修改的内容未保存

    我正在 Wagtail 1 3 1 Django 1 7 11 上运行 我已经激活了 Hallohtml 和 Hallojustify 插件 它们出现在工具栏中 没有图标 但有按钮 可以使用按钮 并且可以在文本区域中看到修改 我的意思是 例
  • 从 shell 添加/修改 wagtail 流场中的块值

    我有一个页面 其中包含一个 StreamField 正文和一个名为 HeadingBlock 的自定义块 class HeadingBlock blocks StructBlock heading blocks CharBlock cssi
  • 如何预取 Wagtail 帖子标签?

    我有大约 10 个帖子 它生成大约 100 个查询来获取帖子标签 这taggit下面使用的 Wagtail 库supportprefetch related https github com alex django taggit blob

随机推荐

  • VB.NET 导入类

    我见过一些代码Class被导入 而不是命名空间 使得该类的所有静态成员 方法都可用 这是VB的特性吗 或者其他语言也这样做吗 测试类 vb public class TestClass public shared function Some
  • BIOS 将哪些信息加载到 RAM 中?

    我知道 启动时 BIOS 会在内存 0x7c00 上加载预定义设备驱动器的第一个扇区 512 字节 然后跳转到该地址 因此 0x7c00 到 0x7dff 的内存被占用 RAM 是否还有其他部分被占用 如果我正在编写操作系统 我可以将除 0
  • roxygen2:导出打印方法时出现问题

    我已更新到 roxygen2 v4 0 0 现在正在尝试按照说明将 S3method 和 method 命令转换为 export 命令here https stackoverflow com questions 7198758 roxyge
  • JavaScript 中的日期解析和验证

    我如何在 JavaScript 中实现下面的伪代码 我想在第二个代码摘录中包含日期检查 其中 txtDate 代表 BilledDate If ABS billeddate getdate gt 31 then yesno The date
  • Deap python 包:创建具有不同范围以及整数和浮点数混合的个体

    我正在尝试使用 DEAP 来最大化函数 我明白如何用基本示例来做到这一点 toolbox register attr bool random randint 0 1 toolbox register individual tools ini
  • AS 3.0 仅测试模块无法在项目 :abcMobile 的以下配置之间进行选择:

    我为 Android UI 测试创建了仅测试模块 它可以在 AS2 3 上找到 但当我升级到 AS3 0 时 我看到以下问题 gt Cannot choose between the following configurations of
  • 如何在 setup.py 中指定库版本?

    In my setup py文件中 我指定了运行我的项目所需的一些库 setup install requires django pipeline south 如何指定这些库所需的版本 我不确定构建 但是 对于 setuptools dis
  • 为什么我的 Silverlight XAML 绑定的单元测试失败?

    我定义了以下组合框
  • SciPy/NumPy 导入指南

    注意 我检查了重复项 但没有任何内容清楚地回答我的问题 我相信如果我错过了什么 你会让我知道的 为了清理我的代码 我一直在寻找在我的程序中导入 SciPy 和 NumPy 的标准约定 我知道没有严格的指导方针 我可以按照我想要的方式去做 但
  • 在 JavaScript 中将 Date() 舍入到最接近的 5 分钟

    Using a Date 例如 我如何将时间四舍五入到最接近的五分钟 例如 如果现在是下午 4 47它会将时间设置为下午 4 45 如果您已经有一个 那就非常简单了Date object var coeff 1000 60 5 var da
  • 使用 attr 设置与 CSP 一起使用的 css 变量内联

    我在想如何在不使用内联样式的情况下使用 css 变量 我想我可以用这个 data color color attr data color color green color var color blue div hello div 看来 a
  • Bootstrap datetimepicker 添加 1 天以记住

    我正在使用 bootstrap datetimepicker 如何在 datetimepicker bootstrap 中添加一天minDate 我想过滤minDate多1天 例如我的checkIndatetimepicker 是 02 1
  • git 将 master 合并到当前分支的快捷方式

    所以有时我在一个分支上工作 我想提取自分支创建以来在 origin master 上所做的更改 只是在做git merge master通常是不够的 因为本地主机可能没有远程主机的更改 所以我发现自己必须这样做 save any uncom
  • 为什么函数式编程好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为 Android 实现卫星菜单,XML 文件显示未找到资源

    首先 我尝试使用这个库 并且尝试编译一个基本测试程序 https github com siyamed android satellite menu https github com siyamed android satellite me
  • Xcode 场景 Dock 隐藏

    我的场景底座被隐藏了 我怎样才能使其可见 红色的不见了 您可以在左侧下方找到此按钮 只需单击它 you will get what you need Enjoy
  • R:将“vline”和“hline”语句组合在一起(ggplot2)

    我正在使用 R 编程语言 最近 我学习了如何使用 ggplot 库 绘制 水平线和垂直线 library ggplot2 Simple scatter plot sp lt ggplot data mtcars aes x wt y mpg
  • 跳过模型访问器

    我有一个名为 Run 的模型 其中包含此方法 public function getNameAttribute name if name Eendaags return this gt race edition gt race gt nam
  • 未创建骨干关系相关模型

    我正在尝试创建一个嵌套的关系骨干项目 但我真的很挣扎 我想要做的粗略想法如下所示 但在客户端上调用 fetch 时 我的印象是 将根据以 JSON 形式返回的预订自动创建许多预订 我的 JSON 格式可以在 MVC 轮廓下方看到 CLIEN
  • 链接到 Wagtail CMS 中的特定页面

    在 Wagtail CMS 中 我不知道如何构建指向特定页面的链接 我想要我的模板中有一个 固定的 未创作的 链接BlogIndexPage to my BlogIndexArchivePage反之亦然 在官方文档中pageurl http