djangoのformについて(プルダウン)
Djangoで知人を管理するシステムを作っています。
form画面で誕生日を入力する欄についての質問です。
月を入力した際、月によって30日まで選択可能にするか31日までに選択可能にするかを制限したいです。
このような場合はjava scriptなどを使った方が良いのでしょうか?それともdjanogを利用してできるものなのでしょうか?自分で調べたのですがしっくりくる方法が見つからず質問させていただくことにしました。
view.py
def human_new(request):
form = HumanCreateFrom(request.POST or None)
# is_validはバリケードするメソッド
if form.is_valid():
Person = humanList()
Person.name = form.cleaned_data['name']
Person.age = form.cleaned_data['age']
Person.part = form.cleaned_data['part']
Person.belongs = form.cleaned_data['belongs']
Person.encounter = form.cleaned_data['encounter']
Person.station = form.cleaned_data['station']
Person.month = form.cleaned_data['month']
Person.days = form.cleaned_data['days']
Person.like = form.cleaned_data['like']
Person.hate = form.cleaned_data['hate']
Person.ep = form.cleaned_data['ep']
# Person. = form.cleaned_data['']
humanList.objects.create(
name=Person.name,
age = Person.age,
part = Person.part,
belongs = Person.belongs,
encounter = Person.encounter,
station = Person.station,
month = Person.month,
days = Person.days,
like = Person.like,
hate = Person.hate,
ep = Person.ep
)
return redirect('list')
return render(request,'create.html',{'form':form})
forms.py
class HumanCreateFrom(forms.Form):
#名前
name = forms.CharField(
required=True,
)
#年齢
age = forms.IntegerField(
required=True,
)
#アルバイト先
part = forms.CharField(
required=False,
)
#勤め先
belongs = forms.CharField(
required=False,
)
#出会い
encounter = forms.ChoiceField(
required=True,
widget=forms.widgets.Select,
choices= CATEGORY
)
#最寄り駅
station = forms.CharField(
required=False,
)
month = forms.ChoiceField(
choices = YEAER_MONTH,
required=True,
)
days = forms.ChoiceField(
required=False,
choices = DAY,
)
#好きなもの
like = forms.CharField(
required=False,
)
#嫌いなもの
hate = forms.CharField(
required=False,
)
#エピソード
ep = forms.CharField(
required=False,
)
DAY = ((1,1),
(2,2),
(3,3),
(4,4),
(5,5),
(6,6),
(7,7),
(8,8),
(9,9),
(10,10),
(11,11),
(12,12),
(13,13),
(14,14),
(15,15),
(16,16),
(17,17),
(18,18),
(19,19),
(20,20),
(21,21),
(22,22),
(23,23),
(24,24),
(25,25),
(26,26),
(27,27),
(28,28),
(29,29),
(30,30),
(31,31),
)
DAY2 = DAY = ((1,1),
(2,2),
(3,3),
(4,4),
(5,5),
(6,6),
(7,7),
(8,8),
(9,9),
(10,10),
(11,11),
(12,12),
(13,13),
(14,14),
(15,15),
(16,16),
(17,17),
(18,18),
(19,19),
(20,20),
(21,21),
(22,22),
(23,23),
(24,24),
(25,25),
(26,26),
(27,27),
(28,28),
(29,29),
(30,30),
)
0 likes
