Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 为“灵巧类型原因”添加新视图;“未找到页面”;查看项目_Templates_Plone_Dexterity - Fatal编程技术网

Templates 为“灵巧类型原因”添加新视图;“未找到页面”;查看项目

Templates 为“灵巧类型原因”添加新视图;“未找到页面”;查看项目,templates,plone,dexterity,Templates,Plone,Dexterity,我正在阅读最近的专业Plone 4开发书籍,关于Plone 4.1.2的安装 <alias from="(Default)" to="(selected layout)"/> <alias from="edit" to="@@edit"/> <alias from="sharing" to="@@sharing"/> <alias from="view" to="@@view"/> <action title="View" action_i

我正在阅读最近的专业Plone 4开发书籍,关于Plone 4.1.2的安装

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
我已经通过灵巧性成功地定义了内容类型,现在正尝试为其中一种类型创建自定义视图。架构和视图的定义如下:

from zope import schema
from plone.directives import form
from five import grok
from ctcc.contenttypes import CTCCTypesMessageFactory as _

class ITrial(form.Schema):
    """A clinical trial."""

    title = schema.TextLine(
        title = _(u'label_title', default=u'Title'),
        required = True,
    )

    description = schema.Text(
        title=_(u'label_description', default=u'Description'),
        description = _(u'help_description', default=u'A short summary of the content'),
        required = False,
        missing_value = u'',
    )

class View(grok.View):
    grok.context(ITrial)
    grok.require('zope2.View')
    grok.name('view')
<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
以下是该类型FTI的相关部分: 看法 假的

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>

模板本身位于ctcc.contenttypes/trial\u templates/view.pt,它应该只显示标题和说明:

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
<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="ctcc.contenttypes">
<body>

<metal:content-core fill-slot="content-core">
    <metal:content-core define-macro="content-core">

        <div tal:replace="structure context/text/output" />

    </metal:content-core>
</metal:content-core>

</body>
</html>

在所有这些就绪的情况下访问该类型的任何实例都会导致“未找到页面”错误。有些事情似乎并没有将新的视角与预期的路径捆绑在一起,但由于这是我与Plone的第一周,我不知道从哪里开始追踪这一点。在前台模式下运行站点时,我也没有看到任何错误

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>

任何帮助都将不胜感激。

您是否将依赖项包含在setup.py中

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
install_requires=[
  'setuptools',
  'plone.app.dexterity',
  ...
  ],
您是否在configure.zcml中初始化了Grok

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
<configure
  xmlns="http://namespaces.zope.org/zope"
  ...
  xmlns:grok="http://namespaces.zope.org/grok">

  <includeDependencies package="." />
  <grok:grok package="." />
  ...

</configure>

...
您是否在metadata.xml中包含了Dexterity的GenericSetup配置文件

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
<metadata>
 <version>1</version>
 <dependencies>
  <dependency>profile-plone.app.dexterity:default</dependency>
 </dependencies>
</metadata>

1.
profile plone.app.dextrity:默认值

模板中的这一行有问题:

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
<div tal:replace="structure context/text/output" />

我已经将一个示例模板剥离到我认为是最小的。由于David Glick的建议,我从错误日志中的忽略异常列表中删除了NotFound,并看到以下内容:

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>
  Module Products.PageTemplates.Expressions, line 225, in evaluateText
  Module zope.tales.tales, line 696, in evaluate
   - URL: /opt/plone41/zeocluster/src/ctcc.contenttypes/ctcc/contenttypes/trial_templates/view.pt
   - Line 13, Column 8
   - Expression: <PathExpr standard:u'context/text/output'>
  [...]
  Module OFS.Traversable, line 299, in unrestrictedTraverse
   - __traceback_info__: ([], 'text')
NotFound: text
evaluateText中的模块Products.PageTemplates.Expressions,第225行 模块zope.tales.tales,第696行,在评估中 -URL:/opt/plone41/zeocluster/src/ctcc.contenttypes/ctcc/contenttypes/trial\u templates/view.pt -第13行第8列 -表达方式: [...] S.可穿越模块,第299行,无限制穿越 -_uuu回溯_uu信息uuuu:([],“文本”) 未找到:文本 现在我明白了问题的原因,并开始深入阅读TALs,我明白了它失败的原因:怀疑我的无知

<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>

谢谢大家

您是否知道,在更改GenericSetup XML中的某些内容后,应该重新运行portal_设置中的相应步骤?请转到ZMI中的错误日志,并从忽略的异常列表中删除NotFound。然后再次转到视图,看看是否有更多信息。@JC Brand:在这个阶段,我根本不修改任何GenericSetup文件。灵巧类型已经创建并运行良好,只有在python文件中添加视图之后,它才会开始给出错误。不过,谢谢你,我真的应该说得更清楚,现在就更新。@David Glick:谢谢你,这不仅有助于暴露问题,这本身就是一个非常宝贵的调试技巧。所有这些都是指定的,尽管我的setup.py改为“plone.app.dexterity[grok]”。我应该在问题中指出,基本类型创建功能工作正常,只有那些类型上的自定义视图失败了。无论如何,谢谢你的帮助。
<alias from="(Default)" to="(selected layout)"/>
<alias from="edit" to="@@edit"/>
<alias from="sharing" to="@@sharing"/>
<alias from="view" to="@@view"/>

<action title="View" action_id="view" category="object" condition_expr=""
    url_expr="string:${folder_url}/" visible="True">
    <permission value="View"/>
</action>