【问题标题】:How can include a regular Django view content in a Wagtail page?如何在 Wagtail 页面中包含常规 Django 视图内容?
【发布时间】:2023-03-08 04:12:02
【问题描述】:

我有一个在 Django 上运行的网站,该网站的大多数页面都使用 Wagtail(这些页面只是简单的文本内容,可通过 Wagtail 管理 UI 进行编辑)。但是,我有一些内容需要从我自己的 Django 模型中动态呈现(假设它是讲义列表)。我希望将内容呈现在 Wagtail 页面上,该页面也有一些 Wagtail 模型(例如,顶部菜单、一些介绍性文本)。最好的方法是什么?我曾想过将讲义列表设为 API 端点,并使用 JavaScript + XHR 进行渲染,但似乎应该有一种在服务器端进行的好方法。

【问题讨论】:

    标签: django wagtail


    【解决方案1】:

    假设介绍文本是 Wagtail StreamField 中的一个块,您还可以定义一个链接到 Django 模型的 Wagtail 块。 https://pypi.org/project/wagtail-modelchooser/ 是一个提供此功能的有用扩展。这使得在 Wagtail 流内容中渲染 Django 模型实例成为可能。

    【讨论】:

      【解决方案2】:

      一种选择是在您的 Page 模型上创建一个属性,该属性从其他模型中检索您要查找的任何内容

      # rest of your imports
      ...
      from handouts import Handouts
      
      class MyPage(Page):
      # rest of your page's fields
      ...
          @property
          def get_handouts(self):
              handouts = Handouts.objects.all()
              return handouts
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        相关资源
        最近更新 更多