日時には3種類のクラスが用意されています。
DateField | 日付形式のテキストのみ受け付けます。 |
TimeField | 時刻形式のテキストのみ受け付けます。 |
DateTimeField | 日付と時刻を続けたテキストのみ受け付けます。 |
hello/views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import TemplateView
from .forms import HelloForm
class HelloView(TemplateView):
def __init__(self):
self.params = {
'title': 'Hello',
'message': 'your data:',
'form': HelloForm()
}
def get(self, request):
return render(request, 'hello/index.html', self.params)
def post(self, request):
self.params['form'] = HelloForm(request.POST)
return render(request, 'hello/index.html', self.params)
hello/urls.py
from django.urls import path
from .views import HelloView
urlpatterns = [
path('', HelloView.as_view(), name='index'),
]
hello/templates/index.html
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hello</title>
</head>
<body class="container">
<h1 class="display-4 text-primary">{{title}}</h1>
<p class="h5 mt-4">{{result|safe}}</p>
<form action="{% url 'index' %}" method="post">
{% csrf_token %}
<table>
{{ form.as_p }}
<tr><td></td><td>
<input type="submit" class="btn btn-primary my-2"
value="click">
</table>
</form>
</body>
</html>
forms.pyに日付関数を定義します。
hello/forms.py
from django import forms
class HelloForm(forms.Form):
d1 = forms.DateField(label='date', required=True, \
widget=forms.DateInput(attrs={'class':'form-control'}))
t1 = forms.TimeField(label='time', \
widget=forms.TimeInput(attrs={'class':'form-control'}))
dt1 = forms.DateTimeField(label='datetime', \
widget=forms.DateTimeInput(attrs={'class':'form-control'}))
webブラウザにてアクセスします。
日付データ以外を入力するとエラーメッセージが表示されます。
正しいフォーマットで入力するとエラーにはなりません。
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント