获取设置为显示的项目
Get the item set as display
我有一个容器 x,其中 Link 项 y 设置为显示。
如果我知道 x,如何以编程方式访问 y?
我试过:getattr(x, 'default_page', None)
,但一直 returns None。
default_page = getattr(x, 'default_page', None)
就是答案。但请确保您有一个 x 的对象。
我的错误是我在查询中尝试了 b.getObject().absolute_url()
而不是 b.getObject()
。
通过使用 getattr
,您可以覆盖关于如何确定对象(项目或容器)的默认页面的 plone 默认行为。
Plone 中的内容对象继承BrowserDefaultMixin
、which provides the functionality of getting the default page of a object
mixin 使用的 mixin, respectively a utility 提供了所需的方法 getDefaultPage
>>> x = b.getObject()
>>> x.getDefaultPage()
...
这将 return 正确 content object
或 view
取决于对象上的配置、FTI 和视图本身等等。
查看 get_default_page
了解更多详情。
甚至更好...
这种获取默认页面的规范方式也有助于快速找到您的问题,因为该方法会进行某些检查以确保传递的对象提供正确的“功能”。字符串不会通过这些检查。
我有一个容器 x,其中 Link 项 y 设置为显示。 如果我知道 x,如何以编程方式访问 y?
我试过:getattr(x, 'default_page', None)
,但一直 returns None。
default_page = getattr(x, 'default_page', None)
就是答案。但请确保您有一个 x 的对象。
我的错误是我在查询中尝试了 b.getObject().absolute_url()
而不是 b.getObject()
。
通过使用 getattr
,您可以覆盖关于如何确定对象(项目或容器)的默认页面的 plone 默认行为。
Plone 中的内容对象继承BrowserDefaultMixin
、which provides the functionality of getting the default page of a object
mixin 使用的 mixin, respectively a utility 提供了所需的方法 getDefaultPage
>>> x = b.getObject()
>>> x.getDefaultPage()
...
这将 return 正确 content object
或 view
取决于对象上的配置、FTI 和视图本身等等。
查看 get_default_page
了解更多详情。
甚至更好... 这种获取默认页面的规范方式也有助于快速找到您的问题,因为该方法会进行某些检查以确保传递的对象提供正确的“功能”。字符串不会通过这些检查。