У меня есть ModelForm
с некоторыми дополнительными полями.У меня функция clean()
этой формы перезаписана, но я не могу получить доступ к этим дополнительным полям в cleaned_data
.При проверке формы ниже, во второй последней строке data.get('startDate')
возвращает None
, так как он не нашел startDate
в очищенных данных.
## Model ##
class Reservation(models.Model):
groupName = models.CharField(max_length=64)
email = models.EmailField()
comments = models.TextField(null=True, blank=True)
## Form ###
class ReservationForm(forms.ModelForm):
startDate = forms.DateField(widget=forms.SelectDateWidget)
endDate = forms.DateField(widget=forms.SelectDateWidget)
class Meta:
model = Reservation
fields = [
'groupName',
'email',
'startDate',
'endDate',
'comments'
]
def clean_startDate(self):
data = self.cleaned_data['startDate']
if data < datetime.date.today():
raise forms.ValidationError('Pick a date in the future')
return data
def clean(self):
data = super().clean()
if data.get('startDate') > data.get('endDate')
raise forms.ValidationError('End date must be after start date.')