您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

forms.py 855B

123456789101112131415161718192021
  1. from django import forms
  2. from oscar.core.loading import get_class
  3. GeneratorRepository = get_class('dashboard.reports.utils', 'GeneratorRepository')
  4. class ReportForm(forms.Form):
  5. generators = GeneratorRepository().get_report_generators()
  6. type_choices = []
  7. for generator in generators:
  8. type_choices.append((generator.code, generator.description))
  9. report_type = forms.ChoiceField(widget=forms.Select(), choices=type_choices)
  10. date_from = forms.DateField()
  11. date_to = forms.DateField()
  12. download = forms.BooleanField(required=False)
  13. def clean(self):
  14. if 'date_from' in self.cleaned_data and 'date_to' in self.cleaned_data and self.cleaned_data['date_from'] > self.cleaned_data['date_to']:
  15. raise forms.ValidationError("Your start date must be before your end date")
  16. return self.cleaned_data