2017-01-06 24 views
-4

私はDjangoを初めて使い、現在自分のアプリケーションのユーザー登録フォームを作成しようとしています。誰もが理由を知っていますform.is_valid()はFalseを返していますか?Django:無効なフォーム

forms.py

class RegistrationForm(forms.ModelForm): 
    username = forms.CharField(widget=forms.TextInput) 
    password = forms.CharField(widget=forms.PasswordInput) 
    email = forms.CharField(widget=forms.EmailInput) 

    class Meta: 
     model = User 
     fields = ['username', 'password', 'email'] 

views.py

def registration(request): 
    if request.method == 'POST': 
     form = RegistrationForm(request.POST) 
     if form.is_valid():   
      print "valid" 
      username = form.cleaned_data['username'] 
      email = form.cleaned_data['email'] 
      password = form.cleaned_data['password'] 

      User.objects.create_user(username=username, email=email, password=password) 

      user = authenticate(username=username, passsword=password) 

      if user is not None: 
       login(request, user) 
       return redirect('/admin') 

     else: 
      # return a blank form 
      print "invalid" 
      return render(request, 'registration/register.html', {'form': form}) 

register.htmlは

<div class="container "> 
<form method="post" action="."> 
    {% csrf_token %} 
    <h2 class="form-signin-heading">Register</h2> 
    <input type="text" id="inputUsername" class="form-control" placeholder="Username" required autofocus> 
    <input type="password" id="inputPassword" class="form-control" placeholder="Password" required> 
    <input type="email" id="inputEmail" class="form-control" placeholder="Email" required autofocus> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
</form> 

+2

いいえ、私たちはおそらくそのことを知ることができますか?なぜあなたはどんな形を見ないのですか?エラーは言う? –

+0

これを変更します: 'email = forms.EmailField(widget = forms.EmailInput)'。 EmailInputは特にEmailFieldのウィジェットです。 –

+0

@DanielRoseman各フィールドに値を入力しても、ユーザー名、電子メール、パスワードに「このフィールドは必須です」と表示されます。 – qp55

答えて

0

あなたのHTML入力要素のいずれかを与えられていませんname属性。これがなければ、ブラウザはサーバーにデータを送信できません。

フィールドを生成するためにDjango自体を使用していた場合は、名前を含むだけでなく、無効なフォームが再表示されたときにも入力されることに注意してください。

関連する問題