python - django custom validation not showing up on button click -
i wrote custom validation form in forms.py it's not working. doesn't show ("email not exist"), when press submit button looks refreshing page. appreciate help.
here view.py:
def delete(request): if request.method == 'post' , "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,})
here template:
<html> <head> <title>delete</title> </head> <body> {% if formdelete.errors %} <p style="color:red">please correct problems</p> 123 {%endif%} <form action="" method="post"> <table> {{formdelete.as_table}} </table> {%csrf_token%} <input type="submit" value="delete" name="deletebutton"> </form> </body>
here forms.py:
from django import forms 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
you not returning validated form template. everytime in view, return new instance of loginpagedelete() instead , discard 1 validation information.
def delete(request): if request.method == 'post' , "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 form = loginpagedelete() return render(request,'delete.html',{"formdelete":form})
Comments
Post a Comment