最近はdjangoでWEBアプリを作っています。タスク管理のためのアプリケーションで、ガントチャートで登録したタスクを管理することができます。これさえあれば、腰が重いことに定評のある僕でもザクザク作業ができちゃうというすぐれものです。
その際に、タスクの開始日と終了日の入力をカレンダー選択タイプにしたので、そのやり方を書いておきます。フォームの定義を楽すると、自由度が少し減るんですよねー。
Modelformを継承したフォーム
今回は少しでも楽をするために、フォームはModelFormを継承して作ることにしました。fieldsに入力をさせたいデータの識別子をずらずらと並べるだけで作れるんで簡単ですね。
from django.forms import ModelForm
from .models import HTask
class HTaskForm(ModelForm):
class Meta:
model = HTask
fields = ('task_name','start_date','end_date','priolity')
ですが、このやり方だと、日付が全て手入力になってしまうので使いにくいです。
日付をカレンダーから選択する
もう答えを書いてしまいますが、日付をカレンダーから選択するためにはウィジェットを使うのがいいです。
from django import forms
from django.forms import ModelForm
from .models import HTask
class DateInput(forms.DateInput):
input_type = 'date'
class HTaskForm(ModelForm):
class Meta:
model = HTask
fields = ('task_name','start_date','end_date','priolity')
widgets = {
'start_date': DateInput(),
'end_date': DateInput(),
}
コメント