代码生成以促进zope[2]应用程序开发。
dm.zope.generate的Python项目详细描述
这个包包含代码生成器,以促进zope的开发[2] 应用。
模块
构造函数
此模块包含用于生成add form和 为基于OFS.PropertyManager.PropertyManager的类添加操作。 生成的函数通常用作^{tt2}中的构造函数$ 在产品初始化期间调用。子包test包含 示例(也用于测试此产品)。
类_properties属性和相关的默认值 用于生成添加表单。
该模块努力避免编码问题。它的功能 最多需要处理3种编码:用于代码的编码, 用于非Unicode属性和Unicode属性的编码。 浏览器只能处理每页的单个编码。因此, 模块必须使用单一编码,所有其他编码必须 被映射。模块使用utf-8作为此统一编码。 对于代码中的字符串,模块没有什么特殊之处。页面模板 将以其标准方式将其转换为Unicode。使用Unicode字符串, 如果这没有给出预期的结果。基于Unicode的属性 未经更改传递给模板。str基于属性 使用明确指定的字符集映射到Unicode, 在当前获取上下文中查找 management_page_charset并返回到ZPublisher.default_encoding。 form操作将这些属性的值转换回str 使用相同的字符集。
添加表单工厂
此工厂为 OFS.PropertyManager.PropertyManager子类。 它有以下参数。
name default description class_ the class to generate the form for action ^{tt11}$classname the forms action description class_^{tt12}$ the documentation shown in the form charset see above template package provided the template to generate the form
它在 生成函数参数,然后使用 关键字参数charset, meta_type,description,action,properties 和class_。调用应该返回html 形式表示。包提供的模板工作良好 以及由添加操作工厂创建的添加操作。
当您计划自定义模板时,请查看 在包提供的模板和源中的docstring 因为这一页并没有描述所有的细节。
由于缺陷/弱点,Zope的物业管理 页仅正确处理Unicode属性 当它可以使用utf-8字符集时。 因此,强烈建议一致使用utf-8。 否则,有可能使用函数设置属性值 以后无法可靠地编辑此模块的。 此外,请注意,Zope的物业管理 utf-8字符集(愚蠢地)为UTF-8(注意大写)。 因此,在指定 您的management_page_charset的utf-8字符集。
添加操作工厂
此工厂为 OFS.PropertyManager.PropertyManager子类。 生成的操作创建此类的实例,设置其属性, 将其添加为其第一个参数的内容对象(假定为 一个OFS.ObjectManager.ObjectManager)和可选的调用 一个钩子。然后,它要么返回创建的实例,要么重定向 到它的管理界面。
工厂有参数class_和可选的hook。
生成的操作具有参数id和 可选的props和request。
props指定属性值 对于创建的实例。如果未指定并且通过了request, 它默认为REQUEST.form。如果指定,则必须是映射。 如果属性值映射缺少某些属性的值,则 保留其默认值;未定义属性的值是静默的 忽略。
历史记录
- 1.1
- python3/zope4兼容性
- 1.0 对于Zope2