2

我有这样的形式:

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))
4

2 回答 2

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

于 2012-05-19T15:29:58.537 回答
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')
于 2014-06-13T08:06:46.527 回答