Django自定义验证未显示在按钮cli上

2024-09-30 02:17:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在中为我的表单编写了一个自定义验证表单.py但它不起作用。它不显示任何内容(“email not exist”),当我按下submit按钮时,它看起来像是在刷新页面。 我会很感激你的帮助。在

这是我的视图.py公司名称:

def delete(request):
    if request.method == 'POST' and "DeleteButton" in request.POST:
        form = LoginPageDelete(request.POST)
        if form.is_valid():
            DeleteData = form.cleaned_data
            q = DeleteData["emailD"]
            query = Users.objects.get(email = q )
            query.delete()
            fetch = Users.objects.all()
            return render(request,'Result.html',{'QueryDelete':fetch.values(),})

    FormDelete = LoginPageDelete()
    return render(request,'delete.html',{"FormDelete":FormDelete,})

以下是模板:

^{pr2}$

给你表单.py公司名称:

from django import forms
from login.models import Users

class LoginPageDelete(forms.Form):
    emailD = forms.EmailField(required=True)

    def clean_emailD(self):
        email = self.cleaned_data['emailD']
        if not Users.objects.filter(email = email).exists():
            raise forms.ValidationError("email not exist")
        return email

Tags: pyform表单returnifobjectsemailrequest
1条回答
网友
1楼 · 发布于 2024-09-30 02:17:06

您只是没有将已验证的表单返回到模板。每次在视图中,都会返回LoginPageDelete()的新实例,并放弃包含验证信息的实例。在

def delete(request):
    if request.method == 'POST' and "DeleteButton" in request.POST:
        form = LoginPageDelete(request.POST)
        if form.is_valid():
            DeleteData = form.cleaned_data
            q = DeleteData["emailD"]
            query = Users.objects.get(email = q )
            query.delete()
            fetch = Users.objects.all()
            return render(request,'Result.html',{'QueryDelete':fetch.values(),})
    else:# here request.method is get or in your case "DeleteButton" not in request.POST
        form = LoginPageDelete()

    return render(request,'delete.html',{"FormDelete":form})

相关问题 更多 >

    热门问题