入力された日付のペアが現在モデルに保存されている日付範囲に含まれていないことを確認するために、フォームのクリーンなメソッドを作成しようとしています。
キャッチしたいのですが、クリーンメソッドfromdate >= value <= todate
のフィルターがそれを取得していません。between
誰かが啓発を提供できますか?
モデル.py
class Dates(models.Model):
fromdate = models.DateField()
todate = models.DateField()
Forms.py
class Form(forms.Form):
fromdate = forms.DateField()
todate = forms.DateField()
class Meta:
model = Dates
def clean_fromdate(self):
form_fromdate = self.cleaned_data.get('fromdate')
exists = Dates.objects.filter(fromdate__contains=form_fromdate).exists()
if exists == True:
raise forms.ValidationError(_("A period is already entered for this date"))
between = Dates.objects.filter(fromdate__gte=form_fromdate,
todate__lte=form_fromdate).exists()
if between == True:
raise forms.ValidationError(_("Period already between this date 1"))
return form_fromdate
def clean_todate(self):
form_todate = self.cleaned_data.get('todate')
exists = Dates.objects.filter(todate__contains=form_todate).exists()
if exists == True:
raise forms.ValidationError(_("A period is already entered for this date"))
between = PeriodsOfInactivity2012.objects.filter(fromdate__gte=form_todate,
todate__lte=form_todate).exists()
if between == True:
raise forms.ValidationError(_("Period already between this date 2"))
return form_todate