Я использую Google Appengine (Python, конечно :)), и я хотел бы сделать string.replace на строку из файла шаблона .
{% for item in items %}
<p>{{ item.code.replace( '_', ' ' ) }}</p>
{% endfor %}
Но это не работает. Таким образом, мы не можем выполнить что-либо кроме базовых проверок в шаблонах ядра приложения. Это правильно?
<ч />
Еще одна связанная проблема - я пытаюсь сократить строку и сделать ее доступной для шаблона.
Каждый предмет мебели имеет имя и более длинное поле description . В этом представлении я выполняю рендеринг. Мне нужны только первые 50 символов поля description .
Итак, я попробовал что-то вроде
items = db.GqlQuery( 'select * from furniture' )
# <b>edit: if you change the above line to</b>
# items = db.GqlQuery( 'select * from furniture' ).fetch( 1000 )
# the .fetch() command makes the addition of dynamic properties work!
for item in items :
item.shortdescr = item.description[ 0:50 ]
# pass data off to template for rendering
self.response.out.write(
template.render( 'furnitureAll.html', { 'items' : items } )
)
Шаблон идет
{% for item in items %}
<p>{{ item.name }}</p>
<p>{{ <b>item.shortdescr</b> }}</p>
<!-- items.shortdescr does not exist here,
probably because I did not .put() it previously. -->
{% endfor %}
Так как это не сработало, я попытался изменить Gql Query, чтобы вместо этого сократить строку. Но я быстро понимаю, что Gql не похож на SQL. Я пытаюсь писать запросы типа
select name,LEFT( description, 50 ) from furniture
с небольшим успехом