Python django:基于ModelForm字段创建HTML警报?
我正在开发Python django:基于ModelForm字段创建HTML警报?,python,django,Python,Django,我正在开发用户假期管理系统 models.py CHOICES = (('Earned Leave','Earned Leave'),('Casual Leave','Casual Leave'),('Sick Leave','Sick Leave'),('Paid Leave','Paid Leave')) class User(models.Model) type_of_leave = models.CharField(max_length = 15, choices =
用户假期管理系统
models.py
CHOICES = (('Earned Leave','Earned Leave'),('Casual Leave','Casual Leave'),('Sick Leave','Sick Leave'),('Paid Leave','Paid Leave'))
class User(models.Model)
type_of_leave = models.CharField(max_length = 15, choices = CHOICES)
from_date = models.DateField()
to_date = models.DateField()
class RequestForm(ModelForm):
class Meta:
fields = ( "type_of_leave", "from_date", "to_date")
model = Leave
widgets = {
'from_date' : DateInput(attrs={'class': 'datepicker'}),
'to_date' : DateInput(attrs={'class': 'datepicker'}),
}
def leaveRequest(request):
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = form.save(commit = False)
leave.user = request.user
form.save()
return HttpResponseRedirect("/thanks/")
else:
...
forms.py
CHOICES = (('Earned Leave','Earned Leave'),('Casual Leave','Casual Leave'),('Sick Leave','Sick Leave'),('Paid Leave','Paid Leave'))
class User(models.Model)
type_of_leave = models.CharField(max_length = 15, choices = CHOICES)
from_date = models.DateField()
to_date = models.DateField()
class RequestForm(ModelForm):
class Meta:
fields = ( "type_of_leave", "from_date", "to_date")
model = Leave
widgets = {
'from_date' : DateInput(attrs={'class': 'datepicker'}),
'to_date' : DateInput(attrs={'class': 'datepicker'}),
}
def leaveRequest(request):
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = form.save(commit = False)
leave.user = request.user
form.save()
return HttpResponseRedirect("/thanks/")
else:
...
views.py
CHOICES = (('Earned Leave','Earned Leave'),('Casual Leave','Casual Leave'),('Sick Leave','Sick Leave'),('Paid Leave','Paid Leave'))
class User(models.Model)
type_of_leave = models.CharField(max_length = 15, choices = CHOICES)
from_date = models.DateField()
to_date = models.DateField()
class RequestForm(ModelForm):
class Meta:
fields = ( "type_of_leave", "from_date", "to_date")
model = Leave
widgets = {
'from_date' : DateInput(attrs={'class': 'datepicker'}),
'to_date' : DateInput(attrs={'class': 'datepicker'}),
}
def leaveRequest(request):
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = form.save(commit = False)
leave.user = request.user
form.save()
return HttpResponseRedirect("/thanks/")
else:
...
用户申请休假,对于我通过管理员
在数据库中给定的每种休假类型的默认值为10天
。因此,如果用户申请的叶数超过了他拥有的叶数,我希望生成一个带有消息的HTML警报,即如果叶数被完全使用或变为=0
所以我很困惑在哪里以及如何定义它
我已经将它放在我的forms.py中的RequestForm
类下,但它不起作用
def clean(self):
cleaned_data = super().clean()
to_date = cleaned_data.get("to_date")
from_date = cleaned_data.get("from_date")
if from_date < to_date:
pass
else:
raise forms.ValidationError(
"From Date should be lesser than To Date "
)
def清洁(自清洁):
cleaned_data=super().clean()
截止日期=已清理的数据。获取(“截止日期”)
from\u date=已清理的\u数据.get(“from\u date”)
如果从_日期<到_日期:
通过
其他:
raise forms.ValidationError(
“起始日期应小于截止日期”
)
欢迎来到SO!所以每个用户每种类型都有10天的假期,所以他可以一次休假0天,另一次休假5天?是吗?@guillermochamorro是的,所以如果他申请了3天的带0天余额的挣来的假期,我需要生成一个警报。这看起来是错误的异常调用。应该是
raiseforms.validationerror(“…”)
@Kaushal这是个打字错误。我已经更新了。但是没有用您没有处理表单的
部分。是否有效()您假设使用表单返回页面erorrsI使用modelform您可以用来验证您的modelform实例。