Я работаю над приложением 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
