允许在您的表单中添加预览按钮
项目描述
一般描述
预览立方体增加了预览表单提交效果的能力。
主要思想是
将表单数据提交到特殊控制器,该控制器将像正常一样在数据库事务中插入/更新数据
生成预览
回滚数据库更改以保持数据库不变
此规则的唯一例外是可下载实体,如图像:当渲染包含新创建/更新的图像的HTML页面(作为预览示例视图)时,实际图像内容将在上述数据库回滚后不久由用户的浏览器查询。在此立方体中采用的解决方案是在磁盘上保存此类内容,并保留一段时间(可以使用预览时间选项设置),以便可以预览并在之后清理。
用法
最简单的用法涉及自动实体表单,通常希望预览刚刚创建或更新的实体:在这种情况下,从cubicweb_preview.utils导入PreviewFormMixin,并使您的表单继承它:您就完成了。例如,要将它应用于所有AutomaticEntityForm表单,请使用
from cubicweb.selectors import yes from cubicweb_web.views.autoform import AutomaticEntityForm from cubicweb_preview.views.forms import PreviewFormMixin class PreviewAutomaticEntityForm(PreviewFormMixin, AutomaticEntityForm): __select__ = AutomaticEntityForm.__select__ & yes()
当然,您可以使用PreviewFormMixin的preview_vid和preview_rql属性自定义预览,这些属性将由控制器用于创建结果集(如果preview_rql不为None则使用preview_rql)并对其应用视图(视图名称为preview_vid值,默认为“index”)。
以下是一个使用文件和预览立方体的CubicWeb实例示例,可以在添加或编辑图像时预览所有图像的列表:我们通过preview_rql设置请求所有图像,并使用主视图显示它们。
from cubicweb.selectors import is_instance from cubicweb_web.views.autoform import AutomaticEntityForm from cubicweb_preview.views.forms import PreviewFormMixin class ImageForm(PreviewFormMixin, AutomaticEntityForm): __select__ = AutomaticEntityForm.__select__ & is_instance('Image') preview_vid = 'primary' preview_rql = 'Any X WHERE X is Image' preview_mode = 'inline'
请注意,之前创建的图像存储在数据库中,而预览图像临时存储在磁盘上。默认情况下,预览图像将在磁盘上保留一小时,可以使用preview-store-time选项设置。
preview_mode属性接受newtab(默认值,在自定义模板中打开新浏览器窗口/选项卡中的预览),或inline(将在表单下方显示预览)。
许可协议
此立方体在LGPL-2许可协议下分发。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
cubicweb-preview-3.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e59457f7da38d6eb3d6eddbf7ee1d4d484e4c4bf24d577c7f08d4f7506799990 |
|
MD5 | e60dcf839aafed5ba6d0081c8cdc6e6c |
|
BLAKE2b-256 | 3f5799059b96a8d6085a99955baf3509c21306fb02fa5c56d598dedcfbece9fd |
cubicweb_preview-3.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa780ebb976e16501869dbbf5a769a131cef9445333b57dc07da816dd9405c37 |
|
MD5 | ea331744338372d05aecfb035adcfa0d |
|
BLAKE2b-256 | 8b4f1e6d0cbb66c570afd60ccca425eb7be4f7b4399b6522f5c8713d5564855e |