gpt4 book ai didi

python - Django 如何防止接受 future 日期?

转载 作者:行者123 更新时间:2023-12-03 08:12:02 25 4
gpt4 key购买 nike

我在 froms.py 中添加了此验证,以防止接受 future 日期。但我并没有低估为什么它不起作用,而且现在仍在提交 future 日期的表格。这是我的代码:

import datetime

class AddPatientFrom(forms.ModelForm):

date_of_birth = forms.DateField(widget=forms.DateInput(attrs={'class': 'form-control','type':'date'}),required=True)

class Meta:
model = Patient
fields = ['date_of_birth']

def clean_date(self):
date = self.cleaned_data['date_of_birth']
if date < datetime.date.today():
raise forms.ValidationError("The date cannot be in the past!")
return date

我还想知道如何禁止从 Django 默认 html 日历中选择 future 日期?

最佳答案

您正在检查相反的内容:如果出生日期在今天之前,则会出现错误。在提出验证错误时,您应该检查出生日期是否今天之后,因此:

def clean_date_of_birth(self):
date = self.cleaned_data['date_of_birth']
if <strong>date > datetime.date.today()</strong>: # 🖘 raise error if greater than
raise forms.ValidationError("The date cannot be in the future!")
return date

关于python - Django 如何防止接受 future 日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70558856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com