我試圖找到一種簡單的方法來構建顯示澳大利亞格式日期(dd/mm/yyyy)的窗體。這是我能找到的唯一方法。似乎應該有更好的解決方案。製作Django forms.DateField顯示使用當地日期格式
注意事項:
- 創建一個新的部件,其在DD/MM/YYYY格式呈現日期值
- 創建新日期字段預先設置查找日期格式字符串值列表嘗試使用
我想象中的理想的解決方案將自動定位將DateField但沒有爲我工作(的strftime似乎並沒有是Unicode友好的,但我沒有嘗試很辛苦)
我錯過了什麼嗎?有沒有更優雅的解決方案?這是一個穩健的方法嗎?
from models import *
from django import forms
import datetime
class MyDateWidget(forms.TextInput):
def render(self, name, value, attrs=None):
if isinstance(value, datetime.date):
value=value.strftime("%d/%m/%Y")
return super(MyDateWidget, self).render(name, value, attrs)
class MyDateField(forms.DateField):
widget = MyDateWidget
def __init__(self, *args, **kwargs):
super(MyDateField, self).__init__(*args, **kwargs)
self.input_formats = ("%d/%m/%Y",)+(self.input_formats)
class ExampleForm(ModelForm):
class Meta:
model=MyModel
fields=('name', 'date_of_birth')
date_of_birth = MyDateField()
一個簡單的選擇是依靠javascript日曆小部件來執行本地化。我們使用的一個只是隱藏我的日期字段,並使用指定的本地格式創建另一個日期字段。 – olivergeorge 2009-09-28 22:19:55
關於特定小部件和掛鉤小部件的任何信息? – dfrankow 2009-11-01 16:15:01
我想我應該參考stackoverflow問題:http://stackoverflow.com/questions/114068/best-javascript-calendar-control。 – dfrankow 2009-11-01 16:16:47