我的形式有这样的东西:
class EventForm(ModelForm):
reg_due_date = forms.DateTimeField(input_formats=('%d/%m/%Y %H:%M',), widget=forms.TextInput(attrs={ 'class': 'datePicker','readonly':'true'}))
和
class Event(models.Model):
reg_due_date = models.DateTimeField()
一切正常,当我使用jQuery DateTimePicker时,我在输入字段中有正确的日期时间格式。但是当我尝试通过这部分代码编辑表单时,我看到秒出现,这是完全不可接受的。它来自哪里?
def editEventInfo(request,event_id):
if request.method == 'GET':
if event_id:
event = Event.objects.get(pk=event_id)
form = EventForm(instance=event) # An unbound form
else:
form = EventForm() # An unbound form
return render_to_response('events/editEvent.html', {
'form': form,
},context_instance=RequestContext(request))
答案 0 :(得分:1)
input_formats
是表单字段用于将输入字符串解析为日期的格式列表,打印的内容由格式本地化驱动。
您需要激活USE_L10N = True
或覆盖DATETIME_FORMAT
请参阅https://docs.djangoproject.com/en/1.4/topics/i18n/formatting/和https://docs.djangoproject.com/en/1.4/ref/settings/#datetime-format
答案 1 :(得分:0)
上面的答案并没有解决我的问题, 我必须覆盖默认的DATETIME_INPUT_FORMATS并将我的格式放在首位,因为django会在元组中匹配后立即选择格式。
我把它放在设置中并且我的自定义格式优先级高,它正确呈现。
DATETIME_INPUT_FORMATS = (
'%m/%d/%Y %I:%M %p',
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
'%Y-%m-%d', # '2006-10-25'
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
'%m/%d/%Y', # '10/25/2006'
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
'%m/%d/%y %H:%M', # '10/25/06 14:30'
'%m/%d/%y', # '10/25/06')