объединять числа в виде строк в шаблонах django - PullRequest
1 голос
/ 16 февраля 2012

Я пытаюсь объединить два числа для передачи в качестве параметра во включенный шаблон.

В частности, в приведенном ниже коде я пытаюсь передать что-то для "divnum"

Я посмотрел на: Как я могу объединить forloop.counter со строкой в ​​моем шаблоне django

и подумал, что приведенный ниже код будет работать, но он все еще добавляет подобные числа!(Например, я получаю «2», где я хочу «11»)

<div id="{{ forloop.counter }}graph" style="display:none; padding:  1em, 0;margin: 1em, 0;">
{% with x=forloop.counter|stringformat:"s" %}
    {% include 'graph-div.html' with divnum="1"|stringformat:"s"|add:x width="50%" question=response.question title="Nationwide" %}
{% endwith %}
</div>

Как мне объединить эти числа в виде строк?

В документах есть предупреждение, которое гласит:Строки, которые могут быть приведены к целым числам, будут суммироваться, а не объединяться, как в первом примере выше.

, поэтому я вообще не могу это сделать?Похоже, если есть предупреждение, то они знают, что это проблема, и где-то должно быть какое-то решение ...

Ответы [ 2 ]

0 голосов
/ 21 мая 2014

Определите свой собственный concatenate шаблон фильтра в <appname>\templatetags\<appname>_extras.py

from django import template

register = template.Library()

@register.filter
def concatenate(arg1, arg2):
    """concatenate arg1 & arg2"""
    return str(arg1) + str(arg2)
0 голосов
/ 16 февраля 2012

В соответствии с парадигмой Django Model-View-Template (MVT) логика, устанавливающая уровень данных для отображения пользовательского интерфейса, должна находиться на уровне представления.Я знаю, что это не бизнес-логика, как таковая, но, похоже, что-то лучше обрабатывается в представлении.Как правило, я стараюсь, чтобы в моих шаблонах не было никакой логики, кроме базовых решений, основанных на отображении.Поскольку вы «... создаете объекты диаграммы из данных», вы также должны генерировать свои уникальные идентификаторы вместе с объектами данных, когда они создаются / собираются в представлении.Тег шаблона также поможет вам решить проблему, но я все же рекомендую поместить это в представление.Заполните все данные, прежде чем передать их в шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...