首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带条件的tal python表达式

带条件的tal python表达式
EN

Stack Overflow用户
提问于 2020-07-15 23:02:28
回答 2查看 87关注 0票数 0
代码语言:javascript
复制
<tal:block tal:repeat="image project/images">
    <div 
        tal:define="onlyone python:if repeat.image.length==1: return 'onlyone'"
        tal:attributes="class python:'image-{}'.format(repeat.image.number)">
        <img 
            tal:define="img image/getObject" 
            tal:replace="structure img/@@images/image/custom_1280" 
        />
    </div>
</tal:block>

我已经有一个基于循环索引打印"image-N“的类,但是如果长度是"1”,我该如何添加另一个类呢?文档中没有明确的https://zope.readthedocs.io/en/latest/zopebook/AppendixC.html#tales-python-expressions,它说任何有效的python表达式都可以使用,但是语法对我来说总是错误的。

EN

回答 2

Stack Overflow用户

发布于 2020-07-15 23:08:51

我自己修好的。

代码语言:javascript
复制
                                    <tal:block tal:repeat="image project/images">
                                        <div 
                                            tal:define="onlyone python:'onlyone' if repeat.image.length == 1 else ''"
                                            tal:attributes="class string:image-${repeat/image/number} ${onlyone}">
                                            <img 
                                              tal:define="img image/getObject" 
                                              tal:replace="structure img/@@images/image/custom_1280" 
                                            />
                                        </div>
                                    </tal:block>
票数 0
EN

Stack Overflow用户

发布于 2020-07-18 03:51:09

你只需要在repeat内部定义一个,即每次迭代--在外部定义它:

代码语言:javascript
复制
    <div class="project-images"
        tal:define="onlyone python: len(project.images)==1 and 'onlyone' or '';">
        <tal:project-images repeat="image project/images">
            <div tal:attributes="class string:image-${repeat/image/number} ${onlyone};">
                <img
                    tal:define="img image/getObject" 
                    tal:replace="structure img/@@images/image/custom_1280" 
                />
            </div>
        </tal:project-images>
    </div>

但是..。

您的任务可以(也应该)在CSS3中解决,而不需要额外的html类:

代码语言:javascript
复制
    .project-images div:first-child:nth-last-child(1) {
         /**/
    }
代码语言:javascript
复制
    .project-images div:only-child {
         /**/
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62917896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档