Формы Django Crispy и i18n в макете HTML

Я пытался искать, но не смог найти ответа на этот вопрос, в хрустящих формах Django есть объект макета HTML, который позволяет вам вводить настраиваемый HTML в вашу форму, я работаю над формой CreateView, которая реализует произвольное создание связанных элементов, я вставьте HTML под мое поле следующим образом:

HTML(
'''<p class="add">
      <a href="{% url 'manager-add-category' %}">{% trans 'Add a category' %}</a>
   </p>'''
),

Моя проблема в том, что, хотя теги URL работают нормально, транс-теги не анализируются в хрустящих формах, есть ли альтернатива (может быть, в хрустящих формах?) для поддержки i18n? В шаблоне формы есть правильная i18n загрузка тегов:

{% load i18n %}
{% load crispy_forms_tags %}

person petkostas    schedule 15.01.2014    source источник


Ответы (1)


Раз вы пытаетесь это сделать в каком-то .py файле (как я понял), то зачем вам теги шаблонов - используйте python.

injected_html = u"<p class='add'><a href='%(url)s'>%(translation)s</a></p>" % {'url':some_get_url_method(), 'translation':_(u"Add a category")}

HTML(injected_html)
person Odif Yltsaeb    schedule 15.01.2014
comment
Не подумал об этом, проверю и вернусь! Спасибо! - person petkostas; 15.01.2014
comment
Если эта строка дает вам ошибку относительно переводов или вы видите прокси-объект в строке вместо переведенного текста, измените метод ugettext_lazy (_) для ugettext. должно работать: п. Я всегда их путаю... - person Odif Yltsaeb; 15.01.2014