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实例。