【发布时间】:2013-05-02 01:40:36
【问题描述】:
我希望这个问题不在这里,我用谷歌搜索了很长时间,但没有找到任何东西。我在模板中格式化数字时遇到问题,但有点特别。也许,这就是如何对从简单标签返回的值调用过滤器的整个问题。所以,首先,一些事实:
- 使用 python 2.7 和 Django 1.5
- 在捷克语中,我们使用逗号“,”作为小数分隔符,可选空格“”作为千位分隔符(更常见的是写数字时不带千位分隔符)。
- 通常,
{{ price }}写入数字是打印例如16,0
出于某种原因,我必须使用模板中的数字:
{% count_basic price.leafletPrice.price product.amount product.amount_unit product.category.basic_amount product.category.basic_amount_unit %}
count basic是简单的标签:
from django import template
register = template.Library()
@register.simple_tag
def count_basic(price, product_amount, product_unit, category_amount, category_unit):
if product_unit == 'mililiter' or product_unit == 'gram':
return (float(price) / product_amount) * 1000
else:
return float(price) / product_amount
结果是未打印为 16.0。我已将settings.py中的 l10n 设置为 True:
USE_I18N = True
USE_L10N = True
我也发现“人性化”可以正常工作,但首先,我不知道如何使用从另一个简单标签返回的值调用简单标签/过滤器(可能使用with?),其次,如果它正常工作数字,为什么不从简单标签返回的数字?号码是否返回错误?应该转换吗?我也尝试过将值返回为 Decimal() 并且不工作。
任何简单可行的解决方案都值得赞赏。
【问题讨论】:
标签: python django python-2.7 django-1.5