Plone 如何在zope页面模板中编写python代码

Plone 如何在zope页面模板中编写python代码,plone,zope,template-tal,zpt,Plone,Zope,Template Tal,Zpt,我对Zope和Plone很陌生。我试图在index_html页面中编写python代码。我有person类型的对象列表,现在我想对它们重新排序。所以,我以前的经历是: <ul tal:define="persons python: context.portal_catalog(portal_type='Person');"> <tal:listing repeat="p persons"> 现在,在Zope页面模板不支持语法之前,我有了这段python代码 但是,您

我对Zope和Plone很陌生。我试图在index_html页面中编写python代码。我有person类型的对象列表,现在我想对它们重新排序。所以,我以前的经历是:

<ul tal:define="persons python: context.portal_catalog(portal_type='Person');">
<tal:listing repeat="p persons">


现在,在Zope页面模板不支持
语法之前,我有了这段python代码

但是,您可以在
tal:repeat
中循环查看python列表:


人名

但是,我怀疑您希望让门户目录使用
sort\u on
参数来进行排序(请参阅):


  • 人名

  • 如果要执行更复杂的操作,请使用来为您进行列表按摩。

    Zope页面模板根本不支持
    语法

    但是,您可以在
    tal:repeat
    中循环查看python列表:

    
    人名
    
    
    但是,我怀疑您希望让门户目录使用
    sort\u on
    参数来进行排序(请参阅):

    
    
  • 人名

  • 如果您想做更复杂的事情,请使用a来为您进行列表按摩。

    Zope页面模板根本不支持
    语法。你在哪里找到的语法?我在www.mail-archive.com上找到的/zpt@zope.org/msg00046.html。我意识到,如果我在python代码中将persons更改为new_persons并尝试在中访问它,它就不知道这个new_persons!我想我应该在别的地方写这段python代码。目前我正在浏览器模板中编写它!我应该在哪里写这段代码,如何在模板上访问这段代码?啊,这是一个要求功能的人,没有描述ZPT可以做什么。:-)但是,我是否可以更改列表人员的顺序?我已经在下面发布了一个答案。Zope页面模板根本不支持
    语法。你在哪里找到的语法?我在www.mail-archive.com上找到的/zpt@zope.org/msg00046.html。我意识到,如果我在python代码中将persons更改为new_persons并尝试在中访问它,它就不知道这个new_persons!我想我应该在别的地方写这段python代码。目前我正在浏览器模板中编写它!我应该在哪里写这段代码,如何在模板上访问这段代码?啊,这是一个要求功能的人,没有描述ZPT可以做什么。:-)但是,我是否可以更改列表人员的顺序?我已经在下面发布了一个答案。但是在视图中处理逻辑是否是一个好的实践?您在Person.py类中的“sortable_title”是在哪里定义的?最好是将逻辑推送到视图中,但少量的排序等可以在模板中处理。“sortable_title”是Plone在门户目录中定义的索引,您没有任何要声明的内容来使用它。但是当我使用相同的东西并运行它时,它会给我一个错误,即“sortable_title”没有在任何地方定义!听起来你好像忘记在排序表周围加引号了;这是一个python字符串,不是变量名。但是在视图中处理逻辑是一个好的实践吗?您在Person.py类中的“sortable_title”是在哪里定义的?最好是将逻辑推送到视图中,但少量的排序等可以在模板中处理。“sortable_title”是Plone在门户目录中定义的索引,您没有任何要声明的内容来使用它。但是当我使用相同的东西并运行它时,它会给我一个错误,即“sortable_title”没有在任何地方定义!听起来你好像忘记在排序表周围加引号了;它是python字符串,不是变量名。
    <?python
      order=[0,2,1]
      persons = [persons[i] for i in order]
    ?>