2013-10-24 48 views
10

我使用python 2.6和Django的1.27爲什麼Django使用逗號作爲小數點分隔

我的模型

class Plan(models.Model): 
    price = models.DecimalField(max_digits=5, decimal_places=2,default=0) 
    ..... 
在我的模板

我有

{{plan.price}} 

我的問題是,在我的本地機器我拿點作爲分隔符例如'2.54'
而在我的生產機器上我得到'2,54' - 逗號用作分隔符。
我希望它能在任何地方使用點。

Django文檔 https://docs.djangoproject.com/en/1.2/ref/settings/#decimal-separator
它說有「DECIMAL_SEPARATOR」選項,點它的默認。

BTW在兩臺機器

In [2]: from django.conf import settings 
In [3]: print settings.DECIMAL_SEPARATOR 
. 

SOLUTION:

爲@Marcin指出
設置USE_L10N爲False生產的機器上。

+0

你們的服務器[瑞士(德語)( https://docs.djangoproject.com/en/1.6/topics/i18n/formatting/#switzerland-german)? – J0HN

+1

我認爲我的服務器沒有國籍;),我該如何檢查它?\ – yossi

+0

檢查[這些設置](https://docs.djangoproject.com/zh/dev/ref/settings/#globalization-i18n-l10n )在你的django設置文件中。 – J0HN

回答

12

首先,我假設你在你的settings.py中開啓了L10N和I18N,因爲這是默認設置。你看到的差異可能是因爲你從兩個不同的區域設置的兩臺不同的計算機訪問網站。 Django試圖爲瀏覽器報告的語言環境設置格式。

但是,您可以禁用此行爲。請參閱https://docs.djangoproject.com/en/dev/ref/settings/。設置USE_L10N=False,並設置鏈接頁面上指定的各種分隔符選項。

+0

我從同一臺計算機訪問它們,我會嘗試將USE_L10設置爲false。 – yossi

+0

是的,它完成了這項工作。雖然我不明白,因爲它是相同的計算機和瀏覽器.. – yossi

+0

@yossi可能您的開發安裝已損壞,因此無法使用L10N信息(例如,未安裝本地信息)。 – Marcin

相關問題