我正在編寫一個Django應用程序,用於使用逗號作爲decimal separator的國家/地區。我有一個包含django.db.models.DecimalField
的模型,我使用model forms。我如何使用逗號作爲結果表單字段渲染,並接受用戶的逗號?使Django窗體使用逗號作爲小數點分隔符
繼jweyrich的advice,我已經升級,從Django的1.1我的應用程序的Django 1.2和編輯我settings.py
包含以下內容:
LANGUAGE_CODE = 'nb'
LANGUAGES = (
('nb', 'Norwegian'),
)
USE_I18N = True
USE_L10N = True
DECIMAL_SEPARATOR = ','
THOUSAND_SEPARATOR = ' '
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
)
據我所看到的,這是所有the documentation電話對於。如果我在表單域上設置localization=True
,它現在可以用於表單。然而,它既不在model forms也不在the admin site中工作。
我發現了一個Django ticket和從1.2發佈之前產生的Django changeset。如果我正確地理解了它們,過去小部件會自動使用格式本地化,但在此修補程序本地化之後,必須通過將localization=True
關鍵字參數提供給表單字段來明確打開。有沒有辦法讓管理員在他們的字段上設置localization=True
?
輝煌而優雅的解決方案。 – scum 2011-08-14 20:42:33
我寧願把它變成一個mixin:'LocalizationMixin(object):...'和'FooForm(LocalizationMixin,forms.ModelForm)',所以你可以繼續使用例如。 'FooForm(LocalizationMixin,floppyforms.ModelForm)' – Webthusiast 2011-12-12 14:54:55
如果您想直接爲模型啓用本地化,該怎麼辦?不是ModelForms。用例:查看對AJAX HTTP請求發佈數據的響應,並且希望將該數據(包含逗號作爲千位分隔符的數字)存儲在帶有Decimal字段的模型中。找不到解決方案。 – jorgeas80 2016-09-15 09:21:58