模板fi中Google appengine字符串替换

2024-10-01 07:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是googleappengine(当然是python:),我想做一个字符串。替换来自模板文件的字符串。在

{% for item in items %}
  <p>{{ item.code.replace( '_', ' ' ) }}</p>
{% endfor %}

但那没用。因此,除了在app engine模板中执行基本检查之外,我们无法执行任何操作。对吗?在


另一个相关的问题是我试图缩短一个字符串并使其对模板可用。在

每个家具对象都有一个名称和一个较长的描述字段。在我渲染的这个视图中,我只需要description字段的前50个字符。在

所以我试过

^{pr2}$

模板去了


{% for item in items %}
  <p>{{ item.name }}</p>
  <p>{{ item.shortdescr }}</p>
  <!-- items.shortdescr does not exist here,
  probably because I did not .put() it previously. -->
{% endfor %}

因为这不起作用,所以我尝试更改Gql查询来缩短字符串。但我很快意识到Gql不像SQL。我试着写像

select name,LEFT( description, 50 ) from furniture

几乎没有成功


Tags: 文件字符串namein模板fornotcode
2条回答

我对googleappengine没有什么经验,但据我所知,它与Django的关系非常密切。您的模板实际上并不包含Python代码,即使您在其中使用的一些结构看起来像它。在

你的两个问题都应该用模板过滤器来解决。如果是Django,我会用这样的方式回答你的第二个问题:

{{ item.description|truncatewords:10 }}

对于第一个问题(字符串替换),可能没有内置筛选器可用于该问题。你需要自己写。像这样的东西

^{pr2}$

然后,在模板中,可以执行以下操作:

^{3}$

除了在代码中使用无参数的.fetch()调用,我认为这不可能工作(您总是必须传递一个参数fetch一个参数,即您愿意获取的最大实体数!),我无法重现您的问题,为每个项目分配一个新属性(包括通过处理现有属性获得的属性)在我的测试中运行良好。在

你能用尽可能小的罗盘重现你观察到的问题,并编辑你的问题,包括所有相关文件吗?看来这是我们唯一能帮你解决这个奇怪的虫子的方法!在

顺便说一句,select name,LEFT( description, 50 )或其他任何东西在GQL GQL中当然不起作用,非常明确地说,只支持select *来获取整个实体,或者{}只获取实体的键;select中没有列的选择性,更不用说对它们进行任何操作了!-)在

相关问题 更多 >