2013-06-17 5 views
1

Как реализовать замену строк в django по умолчанию для шаблонов? Я пытаюсь в основном реализовать "hello %s" % "world" с stringformat. Кажется, я не понимаю. Моя лучшая попытка пока {{ "hello %s"|stringformat:"world" }} не дает мне выхода.Замена строк в шаблонах django

ответ

1

В stringformat:E, то E означает conversion types, который в этом случае Floating Point Exponential Format. Здесь "world" не является допустимым типом преобразования, поэтому он терпит неудачу.

Это не может быть сделано, поскольку параметр в метод templatetag должен быть context variable. Идея stringformat - convert types, а не форматирование строк так, как вы хотите.

+0

Я запутался, потому что _В противном случае значения должны быть кортежем с точно количеством элементов, заданных в формате string_, поэтому я могу использовать 'stringformat' для замены значений в моей строке. Вот почему '' hello% s "%" world "или' "hello% s"% ("world") 'работает так, как я ожидаю. –

+0

@steaks, почему вы так думаете? Документы, как цитирует karthikr, говорят о * форматировании *, а не подстановке. В документах нет ссылки на подстановку строк, а 'stringformat' не делает этого. –

+0

@ daniel Я думаю, потому что по нескольким причинам. Во-первых, в документах указываются _items, указанные в строке формата_, которые я интерпретирую как% s или аналогичные символы в строковом аргументе. Во-вторых, работает мой мирный пример. В-третьих, документы дают пример «замены». См. Пример _python имеет пример 002 quotes_. Прямо сейчас я думаю, что оператор _string fomatting_ поддерживает то, что я хочу. Однако тег _stringformat_ не поддерживает все функции оператора _string formatting_. –

Смежные вопросы