forms.py
class BandForm(forms.ModelForm):
time_from = forms.ChoiceField(choices=[(8, "08:00"),(9, "09:00"),(10, "10.00"),(11, "11:00"),
(12, "12:00"),(13, "13:00"),(14, "14:00"),(15, "15:00"),
(16, "16:00"),(17, "17:00"),(18, "18:00"),(19, "19:00"),
(20, "20:00"),(21, "21:00"),(22, "22:00"),(23, "23:00")])
time_to = forms.ChoiceField(choices=[(8, "08:00"),(9, "09:00"),(10, "10:00"),(11, "11:00"),
(12, "12:00"),(13, "13:00"),(14, "14:00"),(15, "15:00"),
(16, "16:00"),(17, "17:00"),(18, "18:00"),(19, "19:00"),
(20, "20:00"),(21, "21:00"),(22, "22:00"),(23, "23:00")])
class Meta:
model = Entry1
exclude = ('created','date')
Часть views.py
if request.method == "POST":
form = BandForm(request.POST)
if form.is_valid():
form = form.save(commit=False)
if year and month and day:
form.date = datetime.date(int(year),int(month),int(day))
form.save()
Допустим, я хочу сделать некоторую проверку в forms.py для моего класса Bandform
def clean_fieldname(self): ....
,
и обычно вы получаете такие параметры, как это - self.cleaned_data.get('field_name')
. Так что, если я попытаюсь получить self.cleaned_data.get ('time_from') - все прекрасно работает. Но если я попытаюсь получить self.cleaned_data.get ('date'), я получу None.
Почему?
Ответ
Модель формы Джанго (с исключенным полем)
Единственное, что было немного неясно из предоставленного мною поста, это то, что вы должны обращаться к экземпляру в forms.py как self.instance.fieldname, но не к self.cleaned_data.get ('fieldname').