2017-05-26 4 views
0

私はPython 3.6でDjango 1.11を使用しています。 私はフォームを持っています。ラジオボタンがチェックされていない状態でフォームが送信されると、フォームは有効です。 しかし、ラジオボタンの「性別」をチェックしてフォームを送信すると、それが男性か女性かにかかわらず、フォームは妥当ではありません。Django - フォームの問題

問題が分かっていますか?

テンプレート:あなたの助けを

<form action="{% url 'games' %}" method="POST"> 
    {% csrf_token %} 
    <p>{{ form.identifiant|add_class:"form-control"|attr:"placeholder:Quel sera votre identifiant unique ?"|attr:"name:identifiant" }}</p> 
    <p>{{ form.email|add_class:"form-control"|attr:"placeholder:Indiquez-y votre email !"|attr:"name:email" }}</p> 
    <p>{{ form.password|add_class:"form-control"|attr:"placeholder:Créer votre mot de passe ici."|attr:"name:password" }}</p> 
    <p>{{ form.confirm_password|add_class:"form-control"|attr:"placeholder:Retaper votre mot de passe."|attr:"name:confirm_password" }}</p> 
    <p>{{ form.sex|attr:"" }}</p> 
    <input class="btn btn-lg btn-primary" type="submit" value="Continuer"> 
</form> 

def view_games(request): 
    if request.method == 'POST': 
     form = MinimumRegisterForm(request.POST) 
     if form.is_valid(): 
      identifiant = form.cleaned_data['identifiant'] 
      email = form.cleaned_data['email'] 
      password = form.cleaned_data['password'] 
      confirm_password = form.cleaned_data['confirm_password'] 
      sex = form.cleaned_data['sex'] 
      form = GamesRegisterForm() 
      return render(request, 'games.html', locals()) 
     else:   
      messages.add_message(request, messages.INFO, 'Formulaire invalide') 
      return redirect(view_register) 
    else: 
     return redirect(view_register) 

views.py

class MinimumRegisterForm(forms.Form): 
    identifiant = forms.CharField(
     max_length=50, 
    ) 
    email = forms.EmailField(
    ) 
    password = forms.CharField(
     widget=forms.PasswordInput, 
    ) 
    confirm_password = forms.CharField(
     widget=forms.PasswordInput, 
    ) 
    sex_choice = (
     ('H', 'Homme'), 
     ('F', 'Femme'), 
    ) 
    sex = forms.MultipleChoiceField(
     widget=forms.RadioSelect(), 
     choices=sex_choice, 
    ) 

forms.py

enter image description here

感謝します。

+0

必須=偽の設定を試しましたか? – sureshvv

+0

@sureshvvはい私は偽を要求しましたが、問題は解決しませんでした。 – GrandGTO

+3

@sureshvv 'forms.ChoiceField'を試してください –

答えて

0

forms.ChoiceFieldが解決策でした。

1

フィールド定義にrequired=Falseを設定してみてください。