Python 3.x 日期/时间输入有效的日期/时间表单验证

Python 3.x 日期/时间输入有效的日期/时间表单验证,python-3.x,django,django-forms,django-views,Python 3.x,Django,Django Forms,Django Views,提交表单时,我会输入有效的日期/时间 代码 forms.py class LessonsForm(forms.ModelForm): class Meta: model = models.Lessons # datetime-local is a HTML5 input type, format to make date time show on fields widgets = { 'start_of_lesson': DateInput(attrs

提交表单时,我会输入有效的日期/时间

代码

forms.py

class LessonsForm(forms.ModelForm):
   class Meta:
    model = models.Lessons
    # datetime-local is a HTML5 input type, format to make date time show on fields

    widgets = {
      'start_of_lesson': DateInput(attrs={'type': 'datetime-local'}, format='%Y-%m-%dT%H:%M'),
      'end_of_lesson': DateInput(attrs={'type': 'datetime-local'}, format='%Y-%m-%dT%H:%M'),
    }

    fields = '__all__'

    def __init__(self, *args, **kwargs):
        super(LessonsForm, self).__init__(*args, **kwargs)
        # input_formats to parse HTML5 datetime-local input to datetime field
        self.fields['start_of_lesson'].input_formats = ['%Y-%m-%dT%H:%M']
        self.fields['end_of_lesson'].input_formats = ['%Y-%m-%dT%H:%M']
设置.py

DATE_INPUT_FORMATS = ["%d/%m/%Y",
                "%d-%m-%Y",
                '%Y-%m-%d',
                '%Y/%m/%d',
                '%Y-%m-%dT%H:%M',
                '%Y/%m/%dT%H:%M',
                '%d-%m-%Y %H:%M',
                '%d/%m/%Y %H:%M',
                '%d/%m/%YT%H:%M',
                '%d-%m-%YT%H:%M',]

      DATE_FORMAT = "d/m/Y"
      DATETIME_FORMAT = "d/m/Y H:i"
      TIME_FORMAT = "H:M"
我觉得我把输入格式弄得乱七八糟,把它们改成了所有的格式,但在保存表单时却无法验证

 start_of_lesson = forms.DateTimeField(input_formats = ['%d/%m/%Y'], widget=forms.DateTimeInput(attrs={'class':'form-control form-control-lg','type':'datetime-local'}))
是我尝试过的一个例子

编辑: models.py

class Lessons(models.Model):
type_of_lesson = models.CharField("Lesson Type", max_length=128)
description = models.TextField()
attendees = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name="attendee_users")
max_capacity = models.IntegerField()
teacher = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,related_name="teaching_user",limit_choices_to={'is_staff': True})
start_of_lesson = models.DateTimeField()
end_of_lesson = models.DateTimeField()
date_added = models.DateTimeField(auto_now_add = True)

你也可以发布你的
models.py
吗?更新后包含了模型,我相信我已经通过在设置文件中添加DATETIME\u INPUT\u格式解决了这个问题,但我将保留问题,看看是否有更好的方法来实现这一点。