当debug在引发表单错误时为false时,如何使Django表单方法变为not 500?

当debug在引发表单错误时为false时,如何使Django表单方法变为not 500?,django,forms,Django,Forms,我有以下登录代码: class LoginForm(forms.Form): email = forms.EmailField(max_length = 254, min_length = 6) password = forms.CharField(min_length = 8, widget = forms.PasswordInput()) def Login(self): email = self.cleaned_data.get('email')

我有以下登录代码:

class LoginForm(forms.Form):
    email = forms.EmailField(max_length = 254, min_length = 6)
    password = forms.CharField(min_length = 8, widget = forms.PasswordInput())

    def Login(self):
        email = self.cleaned_data.get('email')
        password = self.cleaned_data.get('password')
        user = authenticate(email = email, password = password)

        if (user is None) or (user is not None and user.is_active is False):
            raise forms.ValidationError('Login is incorrect.')

        return user
然而,当我在我的站点上把debug设置为false时,只要登录不正确,我就会得到一个500错误,而不是显示ValidationError的表单。我这样称呼它:

if form.is_valid():
    user = form.Login()
这是一个视图方法。我错过了什么?如何正确调用此表单错误,以便在debug设置为false时不会出错?

这样调用

def clean(self):
    password = self.cleaned_data.get('password')
    email = self.cleaned_data.get('email')   
    user = authenticate(email = email, password = password)
    if (user is None) or (user is not None and user.is_active is False):
        raise forms.ValidationError('Login is incorrect.')
    return self.cleaned_data

def login(self,request):
    user = authenticate(email = self.cleaned_data.get('email'),password = self.cleaned_data.get('password'))
    user = authenticate(username=username, password=password)
    return user

是否应该调用
Login
而不调用
def clean
?Hi可能重复,您是对的,我的解决方案是