2

我有一个使用 plone.formwidget.multifile.MultiFileFieldWidget 的自定义敏捷类型:

class ITestimony(form.Schema):
    ...
    form.widget(files=MultiFileFieldWidget)
    files = schema.List(
        title=_(u"Files"),
        value_type=NamedFile()
    )

编辑项目时一切都按预期进行:

在此处输入图像描述

这是相关的视图模板,我尝试从https://developer.plone.org/reference_manuals/external/plone.app.dexterity/advanced/files-and-images.html借用:

<fieldset tal:condition="context/files">
<legend>Attached Files</legend>
  <ul>
  <tal:files repeat="item context/files">
    <li><a href=""
         tal:attributes="href string:${context/absolute_url}/@@download/files/${item/filename};"
         tal:content="item/filename">Attached File</a></li>
  </tal:files>
  </ul>
</fieldset>

我希望可以通过单击链接下载附件。但是我当前的模板出错了:

AttributeError:“列表”对象没有属性“getSize”

在此处输入图像描述

如何下载我上传的文件?

4

2 回答 2

2

实际上答案来自http://josh.postach.io/multiple-file-upload-custom-dexterity-content-types-plone-5-02a

以下代码段对我有用:

<fieldset tal:condition="context/files">
<legend>Attached Files</legend>
<ul>
  <tal:files repeat="item context/files">
  <li><a href=""
    tal:attributes="href string:${context/absolute_url}/@@edit/++widget++form.widgets.files/@@download/${repeat/item/index}"
    tal:content="item/filename">Attached File</a></li>
  </tal:files>
</ul>
</fieldset>

虽然@@edit在这里使用是连线的,但希望我们很快就会有更好版本的 plone.formwidget.multifile 或相关包。

于 2014-10-08T07:55:22.997 回答
0

有关如何使用 Dexterity 处理文件的一些说明如下:

http://developer.plone.org/forms/files.html

具体来说,构建下载 URL:

http://developer.plone.org/forms/files.html#connstring-download-urls

@@download辅助视图)

于 2013-07-26T13:26:25.697 回答