首页 > 解决方案 > Wagtail Pages 属于哪一类?

问题描述

我已经开发了一些以 Wagtail Page 作为基类的类,例如 InfoPage。在应用程序中我必须知道使用哪个类。

如果我使用“”,我会得到“<class 'wagtail.core.models.Page'>”,但不是例如 InfoPage。

我怎样才能得到班级的名字?

标签: classwagtail

解决方案


您可以通过 检索课程page.specific_class

当您在事先不知道结果的页面类型(例如Page.objects.filter(slug='news')or page.get_children())的情况下执行数据库查找时,它将作为基Page类的实例返回,其中只有 title 和 slug 等公共字段可用。这是因为获取完整的页面数据需要额外的数据库查询,这可能是不必要的(例如,如果您只是输出页面标题列表)。要以最具体的形式访问整个页面对象,请使用page.specific,或者如果您只想了解类而不进行额外的数据库获取,请使用page.specific_class。页面查询集还有一种specific()一次性检索所有特定实例的方法。


推荐阅读