2016-10-27 2 views
0

電子メールとパスワードのフィールドを持つ簡単なログインフォームがあるとします。djangoで不正な形式でクリーンな値を表示することはできますか?

ユーザーに電子メール '[email protected]'を入力してください およびパスワードは空白です。

小文字のメールをクリーンアップします。

フォームが無効で、ユーザーが再度フォームを表示しています。

小文字のメールを表示するにはどうすればいいですか?つまり、[email protected]ですか?

答えて

1

Djangoのフォームインスタンスでは、バインドまたはアンバインドのいずれかが可能です。だからあなたができることは、リクエストからユーザ名を取り出して、それを小文字に変換し、小文字のユーザ名で有界フォームに戻すことです。 FYI

def login(request, template_name='login.html', 
      redirect_field_name=REDIRECT_FIELD_NAME, 
      authentication_form=AuthenticationForm, 
      current_app=None, extra_context=None): 
    current_site = get_current_site(request) 
    if request.method == "POST": 
     username = request.POST.get('username').lower() 
     pass = request.POST.get('password') 
     form = authentication_form(request, data={'username':username, 'password':pass}) 
     if form.is_valid(): 
      #Login user and redirect to respective page 
     else: 
      context = {'form': form} 
      return TemplateResponse(request, template_name, context, 
              current_app=current_app) 
    else: 
     form = authentication_form(request) 
    context = {'form': form} 
    return TemplateResponse(request, template_name, context, 
          current_app=current_app) 
関連する問題