在Plone& Dexterity中创建自定义editForm,如何保存对象的更改?

时间:2011-12-07 15:19:15

标签: plone dexterity

我们正在我们的大学开展学生项目,我们必须使用Plone和Dexterity内容类型。

我们创建了自定义内容类型,现在正尝试为其创建自定义编辑表单。但是,我们似乎无法将我们在编辑表单上输入的任何内容保存到对象本身。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
  xmlns:tal="http://xml.zope.org/namespaces/tal"
  xmlns:metal="http://xml.zope.org/namespaces/metal"
  xmlns:i18n="http://xml.zope.org/namespaces/i18n"
  lang="en"
  metal:use-macro="context/main_template/macros/master"
  i18n:domain="pacs.content">
<body>



<metal:main fill-slot="main">
    <metal:main define-macro="main"
       tal:define="currentSelection view/selected_org_unit">

    <div tal:replace="structure provider:plone.abovecontenttitle" />

    <h1 class="documentFirstHeading" tal:content="context/title" />

    <div tal:replace="structure provider:plone.belowcontenttitle" />

    <p class="documentDescription" tal:content="context/shortname" />

    <div tal:replace="structure provider:plone.abovecontentbody" />

    <div tal:content="structure context/projectnr" />        
    <div>
    <fieldset style="border:1px #000 solid">
    <legend>Bereichszuordnung</legend>

        <select name="org_unit" size="1">
            <option value="">Bitte auswählen</option>
            <option
                    tal:repeat="code view/org_units"
                    tal:attributes="value code;
                                            selected python:currentSelection == code and 'selected' or None"
                    tal:content="code"
            />
        </select>
    </fieldset>
    </div>

    <div tal:content="structure context/org_unit" />
    <div tal:content="structure context/project_head" />
    <div tal:content="structure context/confidential" />

    <input id="form-buttons-save" 
    name="form.buttons.save" class="submit-widget button-field context" value="Save" type="submit" />        
    <div tal:replace="structure provider:plone.belowcontentbody" />
    <div metal:use-macro="context/batch_macros/macros/navigation" />

</metal:main>
</metal:main>

提前感谢您提供的任何帮助,我们很乐意上传任何相关代码。

1 个答案:

答案 0 :(得分:1)

您是否正在注册编辑表格?

class EditForm(dexterity.EditForm):
    grok.context(IYourContentType)

请查看Custom add and edit forms了解详情。