当前端依赖无头wagtail API时在Wagtail中预览未发布的草稿

cwj*_*cwj 5 django content-management-system django-rest-framework wagtail

假设我有以下设置:

  1. Wagtail中的后端CMS,使用Wagtail API公开数据
  2. 一个采用上述API并使用React的前端,生成HTML和JS

默认情况下,使用Wagtail会破坏Wagtail的预览。不幸的是,预览功能对于此特定项目很重要,因此我需要找到一种机制来保留它。

到目前为止,我设法创建了一个输出自定义序列化JSON的模板,该模板由特制的前端读取。

不幸的是,此解决方案远非理想,因为要维护两个序列化器rest_framework和Wagtail的端点(带有api_fields模型本身)。

我无法从Wagtail生成JSON BaseEndpoint(使用.as_view或其他方式),但这可能是一种解决方案。

我还考虑过在唯一的定时GUID下生成为特定页面提供临时序列化JSON的终结点。如果有人以某种方式获得了(临时)链接,这将从技术上将未公开的草稿向公众公开,但这是一种风险,如果有一种好的方法,我们可能会承担。

我该如何解决这个问题?您以某种方式为自己的项目解决了吗?