2017-08-23 12 views
0

私はDjangoで新しく、問題が1つあります。Djangoのエラーメッセージ

djangoフォームを使用すると、サイクルでエラーメッセージが表示されません。 彼らは現れません。なぜこのようなことが起こるのか分かりませんが、私はフォームの生成を変更しました。コードの短い一見では

<span id="username" class="input input--madoka">{{ form.username }} {{ form.username.label_tag }}</span> 
<span id="first_name" class="input input--madoka">{{ form.first_name }} {{ form.first_name.label_tag }}</span> 
<span id="last_name" class="input input--madoka">{{ form.last_name }} {{ form.last_name.label_tag }}</span> 
<span id="email" class="input input--madoka">{{ form.email }} {{ form.email.label_tag }}</span> 
<span id="password" class="input input--madoka">{{ form.password1 }} {{ form.password1.label_tag }}</span> 
<span id="password2" class="input input--madoka">{{ form.password2 }} {{ form.password2.label_tag }}</span> 

{% for error in form.errors %} 
    <h2 style="color: red; font-size: 50px">{{ error }}</h2> 
{% endfor %} 

ビュー:

def signup(request): 
    if request.method == 'POST': 
     form = SignupForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      username = form.cleaned_data.get('username') 
      raw_password = form.cleaned_data.get('password1') 
      user = authenticate(username=username, password=raw_password) 
      login(request, user) 
      messages.success(request, '<p class="success-m animated fadeInUp">You were successfully registered %s </p>'%user.first_name) 
      return redirect('/') 
    else: 
     form = SignupForm() 
    return render(request, 'signup.html', {'form': form}) 

だけでエラーメッセージは表示されません。

ありがとうございます。 (私は間違った質問を与えた場合は申し訳ありませんが)初心者:(

+0

私は私の見解コードを追加します[OK]をクリックしてビューコードしてください –

+0

を表示 –

+0

フォームデータは残っていますが、ポストアクションの前にそれを見たりリセットしたりしましたか? –

答えて

0

無効なフォームのための他の条件を持っていないので、それは次のようになります。

def signup(request): 
    template_name = 'signup.html' 

    if request.method == 'POST': 
     form = SignupForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      ... 
     else: 
      # your invalid form after `request.POST` goes here. 
      # you should render the template again. 
      print(form.errors) 
      return render(request, template_name, {'form': form}) 
    else: 
     form = SignupForm() 
    return render(request, template_name, {'form': form}) 
関連する問題