代码之家  ›  专栏  ›  技术社区  ›  geoAndrew

Django应用程序中的所有模型都应该使用Wagtail吗?

  •  3
  • geoAndrew  · 技术社区  · 7 年前

    我正在构建一个使用Wagtail的新webapp。这是一个架构问题。

    会有标准的 关于 , 服务条款 页。所有这些都非常符合Wagtail范式。网站的其余内容是关于特定类型企业的基于位置的信息。想想一个 FourSquare 键入app。这些页面的数据将非常结构化,通过面向用户的网页和移动应用程序进行更新,并且使用大量JavaScript。

    对于常规的Wagtail页面,随着时间的推移可能会有数百个。对于位置页面类型,将有(希望)数万个页面嵌套到最多四个级别。

    从整个站点的功能角度来看,我希望利用Wagtail功能,如站点地图和弹性搜索。

    我的问题是,我应该为基于位置的页面使用wagtail Page类吗?

    赞成的意见:

    • 与弹性搜索和Wagtail网站地图轻松集成
    • 在管理端利用Wagtail编辑器。

    欺骗:

    • 位置页面的开销可能更大。
    • 需要利用更多的钩子来操作视图输出(大量的JS,因此将在模板中插入非模型信息)。
    • 可能会限制某些第三方模块的使用。

    如果我选择非摇尾路线,是否可以将非摇尾模型添加到搜索索引中?

    在这个选择中,我还应该考虑其他问题吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Loïc Teixeira    7 年前

    Any Django model can be indexed and searched 按继承自 index.Indexed 以及定义 search_fields 在模型上。

    至于是否使用页面,通常取决于很多事情。然而,看起来保留您的位置模型是有意义的,而不是使其成为一个页面并在管理中公开(如果您需要一些已经存在的扩展,可以是Django admin,也可以是Django admin) Wagtail's modeladmin 否则)。然后创建一个 LocationIndexPage 它实现了 RoutablePageMixin 动态服务于 LocationPage s、 该页面在管理树中不存在,但无论如何都可以访问。