Django中的验证错误

时间:2013-10-04 19:23:33

标签: python django

我正在尝试修改django中的UserRegistationFrom以使每个电子邮件地址独立

我是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")

和, 我收到此错误

ValidationError at /
[u'Error']
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.5.4
Exception Type: ValidationError
Exception Value:    
[u'Error']

为什么我出现此错误?以及如何解决它?

1 个答案:

答案 0 :(得分:0)

好吧,我已经修复了这个bug :) 问题在于 生成视图

所以正确的代码

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()})

感谢谁试图帮助我