出於某種原因,我的表單中不接受美式日期格式。我想知道是否有任何來自美國的Django開發人員可以幫助我。我懷疑設置中的時區也會影響日期格式,但我不確定。Django:如何獲取美國日期格式的表單?
設置:
TIME_ZONE = 'Europe/London'
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
USE_TZ = True
的ModelForm:
class CallsForm(ModelForm):
class Meta:
model = Conversation
widgets = {
'contact_date': forms.DateInput(attrs={'placeholder': 'Add the date...', 'id': 'datepicker', 'class': 'placeholder_fix_css'}, format='%m/%d/%Y'),
}
任何想法?感謝
更新:
我來到靠近了一步發生了什麼:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
)
它儘快LocaleMiddleware裝載看來,Django的從我的瀏覽器會話中獲得的設置,因此dateformat更改爲歐洲,反映了我的位置。聰明。
現在日期輸入在美國的dateformat中被接受。 在模板中我得到Aug. 31, 2012
,這也是正確的。 但是在形式上,一旦我嘗試修改記錄,我會得到2012-08-31
??
這看起來不對。當然,我可以使用format='%m/%d/%Y'
來覆蓋它,但不是那種硬編碼和不好的做法?當然,這些表格必須依賴於當前文化的日期格式,即美國,但爲什麼不會發生?
你的數據庫的默認日期格式是'YYYY-MM-DD'的定位是在表單字段_Input不validation_展出。在模板或輸出中使用時(如在預填表格的字段時),您需要確保按照用戶當前所選語言環境進行本地化。 – 2012-08-15 20:50:24