作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从 创建一个(原型(prototype))对象查看 第二个对象(object2
- 它不是新对象的父对象)。它需要预先填充 中的数据。请求 ,以及来自 object2
.
简单的解决方案似乎是使用 “默认方法”在模式字段上,这可以用于请求中的数据,但我不相信我可以从那里访问 View ,因此不能访问 object2
, 任何一个。在任何情况下,其中一个字段是 object2
的 ReferenceField。我读过 ReferenceField 忽略了“default_method”。
另一个选项是在 portal_factory 中创建它,设置它的默认值,然后显示 Add 页面,允许用户根据需要修改内容,或者在不实际创建对象的情况下退出。完美,除了可用于创建对象的众多方法(invokeFactory()
、_createObjectByType()
、_constructInstance()
和 createObject()
,据我所知),只有 createObject
实际上将对象留在了 portal_factory 中 - 因为它只返回一个字符串(对象的添加页面的 URL),不接受关键字参数,并且似乎不通知任何事件(当然不是 IObjectCreatedEvent),我可以'在将用户引导到编辑页面之前,看不到如何用我的数据修改它。
最佳答案
这是我在无法使用 createObject 时推荐的模式:
_id = self.context.generateUniqueId("Document")
_id = self.context.invokeFactory(type_name=type_name, id=_id)
ob = self.context[_id]
ob.edit(
description = "text...",
subject = ('tag1', 'tag2'),
title = "some title...",
)
ob._renameAfterCreation(check_auto_id=True)
_id = ob.getId()
关于plone - 如何在 portal_factory 中创建和填充 Plone 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971987/
我是一名优秀的程序员,十分优秀!