Подтвердить что ты не робот

Как предотвратить Django от локализации идентификаторов в шаблонах?

Недавно я обновился до Django 1.2.5, и теперь у меня проблемы с локализацией, в частности, форматирование номера. Например, в некоторых шаблонах я печатаю следующие образцы:

data-id="{{ form.instance.id }}"

Что в случаях >= 1000, используется для оценки:

data-id="1235"

Но теперь это фактически приводит к (моя локализация - pt-BR, наш десятичный разделитель - точка):

data-id="1.235"

Что, конечно, не обнаружено, когда я потом запрашиваю базу данных по ID. Использование фильтра |safe решает проблему, но я не желаю находить все идентификаторы во всех шаблонах и защищать их.

Обычно я локализую только плавающие точки, а не целые числа. Я не хочу отключать L10N, потому что все другое форматирование работает нормально. Есть ли способ сделать это различие в локализации Django? Принимается любое другое решение.

4b9b3361

Ответ 1

data-id="{{ form.instance.id|safe }}"

Также выполните задание

Ответ 3

Это не отвечает на ваш вопрос, но ознакомьтесь с этим разделом docs. В нем говорится использовать фильтр {{ |unlocalize }} или:

{% localize on %}
    {{ value }}
{% endlocalize %}

{% localize off %}
    {{ value }}
{% endlocalize %}

Вероятно, лучший способ, но я думаю, что вы можете написать метод, который дает вам идентификатор в виде строки в вашей модели для каждой модели, которую вы пытаетесь отобразить в шаблоне.

class MyModel(models.Model):
    pass

    def str_id(self):
        return u'%s' % self.id

в шаблоне:

{{ form.instance.str_id }}