Djang中的验证错误

2024-04-19 01:27:05 发布

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

我试图在django中修改userregistrationfrom,使每个电子邮件地址都是唯一的

我在django是个小傻瓜。所以,通过遵循教程和stuakoverflow问题,我写了这篇文章来检查电子邮件是否存在

顺便说一下,我在视图中写了所有的测试

from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth.models import User
from django import forms
from django.contrib.auth.forms import UserCreationForm

class Signup(UserCreationForm):
    email = forms.EmailField(required=True)

    def clean_email(self):
        email = self.cleaned_data['email']
        try:
            user = User.objects.get(email=email)
        except User.DoesNotExist:
            return email
        raise forms.ValidationError("You have forgotten about Fred!")



def index(request):
    if request.method == "POST":
        signup = Signup(request.POST)

        if signup.is_valid():
            return HttpResponse("All is well")
        else:
            return render(request,'website/index.html',{'form':Signup})

    return render(request,'website/index.html',{'form':Signup()})

def private(request):
    return HttpResponse("Ok")

而且, 我得到了这个错误

^{pr2}$

为什么我会犯这个错误?怎么解决呢?在


Tags: djangofromimportindexreturn电子邮件emailrequest
1条回答
网友
1楼 · 发布于 2024-04-19 01:27:05

好吧,我已经修复了这个错误:) 问题是 正在生成视图

所以正确的代码呢

from django.http import HttpResponse
from django.shortcuts import render
from django.contrib.auth.models import User
from django import forms
from django.contrib.auth.forms import UserCreationForm

class Signup(UserCreationForm):
    email = forms.EmailField(required=True)

    def clean_email(self):
        email = self.cleaned_data['email']

        try:
            u = User.objects.get(email=email)
        except User.DoesNotExist:
            return email

        raise forms.ValidationError("Error")




def index(request):
    if request.method == "POST":
        signup = Signup(request.POST)

        if signup.is_valid():
            return HttpResponse("All is well")
        else:
            return render(request,'website/index.html',{'form':signup})

    return render(request,'website/index.html',{'form':Signup()})

感谢您帮助我

相关问题 更多 >