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

上記の答えは私の問題を解決しませんでした.djangoはタプルで一致するとすぐにフォーマットを選択するため、デフォルトのDATETIME_INPUT_FORMATSをオーバーライドしてフォーマットを一番上に置く必要がありました。

これを設定に入れ、カスタム フォーマットの優先順位を高くすると、正しくレンダリングされました。

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 に答える