2017-10-11 91 views
0

私のテンプレートにはforループがあります。あなたが見ることができるように、各ラジオボタンのIDは{{stud.id}}によってreprsentedされています。djangoテンプレートで選択したラジオボタンを取得

{{stud.nameAndSurname}}には、生徒の名前と姓が表示されます(ブラウザには、対応する生徒の名前と姓が表示されます)。私view.pyで

<form method="POST" class="post-form"> 
     {% csrf_token %} 
     {% for stud in students %} 
      <input type="radio" id="{{ stud.id }}" name="student">{{ stud.nameAndSurname }} 
     {% endfor %} 
    <button type="submit" class="save btn btn-default">GO!</button> 
</form> 

私が持っている:

class MyClass(View): 
    def get(...): 
     ... 

    def post(self,request, pk): 
     myVar = request.POST.get("student") 
     return HttpResponse(myVar) 

私は私の選択した生徒の名前と姓を示し、別のページに移動するボタンを提出クリックした場合。今問題は、生徒の名前と姓の代わりに、単に「オン」と書かれていることです。

+0

はタイプミスですか、終了タグ「」を見逃しましたか? –

+0

最後に ''を置いて閉じると "閉じるタグが冗長です"という警告が表示されます。私は必要ではないと思います。しかし、私はそれを置く場合でも、私の問題は解決されていません –

答えて

1

ラジオボタンには値が必要です。 (入力の終了後部分がラベルであり、label要素で囲まなければならないことに留意されたい。)

<input type="radio" id="student_{{ stud.id }}" name="student" value="{{ stud.id }}"> 
<label for="student_{{ stud.id }}">{{ student.nameAndSurname }}</label> 
0

Signup.htmlのDjangoテンプレート

<div id="row type-select"> 
    {% for choice in form.option %} 
     <div class="col s12 m4 l4 center-align"> 
      {{ choice.tag }} 
      <label for="{{ choice.id_for_label }}">{{ choice.choice_label }}</label> 
     </div> 
    {% endfor %} 
</div> 

forms.pyジャンゴ-allauthから

オーバーライドSignUpForm

CHOICES=[('1','type 1'), 
     ('2','type 2'), 
     ('3','type 3')] 

class SignupForm(forms.Form): 
    option = forms.ChoiceField(widget=forms.RadioSelect,choices=CHOICES) 
    first_name = forms.CharField(max_length=30, label='name') 
    last_name = forms.CharField(max_length=30, label='last name') 

    def signup(self, request, user): 
     user.first_name = self.cleaned_data['first_name'] 
     user.last_name = self.cleaned_data['last_name'] 
     user.save() 
関連する問題