Humanize не работает для поплавков в шаблоне - PullRequest
1 голос
/ 02 апреля 2019

Я работаю над приложением Django, для которого LANGUAGE_CODE установлено на es для испанского.

Я пытаюсь отформатировать, как числа отображаются в шаблонах. Прямо сейчас они отображаются как: S/ 18,00, когда необходимо S/ 18.00 .

Я искал и нашел другой связанный с этим вопрос:

Формат чисел в шаблонах Django

Но после применения Humanize я не получаю желаемый результат:

template.html

{% load humanize %}

<p>El total de su pedido es: S/ {{ total|intcomma }}</p> #renders S/ 18,00

settings.py

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'shop',
    'django.contrib.humanize',
]

Я также пробовал эти другие решения:

1) <p>El total de su pedido es: S/ {{ total|floatformat:'2' }}</p>

Не работает, рендерит: S/ 18,00, когда необходимо S/ 18.00.

2) <p>El total de su pedido es: S/ {{ total|stringformat:"f" }}</p>

Работает, но использует более 2 десятичных знаков: S/ 18.00000000, когда требуется S/ 18.00.

3) <p>El total de su pedido es: S/ {{ total|stringformat:"2f" }}</p>

Это не работает, также возвращает: S/ 18.00000000, когда требуется S/ 18.00.

models.py:

class Order(models.Model):

    token = models.CharField(max_length=100, blank=True, null=True)
    first_name = models.CharField(max_length=50, blank=True, null=True)
    last_name = models.CharField(max_length=50, blank=True, null=True)
    total = models.DecimalField(max_digits=10, decimal_places=2)

views.py

def thanks_deposit_payment(request):
    order_number = Order.objects.latest('id').id

    total = Order.objects.latest('id').total

    response = render(request, 'thanks_deposit_payment.html', dict(order_number=order_number, total=total))
    return response

Другие языковые настройки, которые могут помочь:

LANGUAGE_CODE = 'es'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

enter image description here

1 Ответ

0 голосов
/ 02 апреля 2019

Мне просто нужно было отключить эти 2 переменные в моем файле settings.py:

USE_I18N = False #Before True

USE_L10N = False #Before True

А в шаблоне я мог бы просто использовать:

{{ total }}

Спасибо комментарию Кендоки за то, что он указал мне правильное направление.

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