0

ログイン用に次のコードがあります。

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

ただし、自分のサイトでデバッグを false に設定すると、ログインが正しくないときは常に、ValidationError を表示するフォームではなく 500 エラーが発生します。私はそれを次のように呼んでいます:

if form.is_valid():
    user = form.Login()

それはviewメソッドにあります。ここで何が欠けていますか?デバッグがfalseに設定されているときに500にならないように、このフォームエラーを適切に呼び出すにはどうすればよいですか?

4

1 に答える 1

1

このように呼び出します

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
于 2013-06-26T03:57:43.750 に答える