在django模板中获取所选的单选按钮

时间:2017-10-11 13:10:41

标签: django radio-button

在我的模板中,我有循环。正如您所看到的,每个单选按钮的ID由{{stud.id}}重新调整。

{{stud.nameAndSurname}}显示学生的姓名和姓氏(在浏览器中我可以看到相应学生的姓名和姓氏)。

<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>

在我的view.py中我有:

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

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

如果我点击提交按钮,我想转到另一个页面,显示所选学生的姓名和姓氏。现在的问题是,而不是学生的姓名和姓氏,它只是简单地写在“上”

2 个答案:

答案 0 :(得分:5)

单选按钮需要有值。 (请注意,输入结束后的部分是标签,应该包含在label元素中。)

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

答案 1 :(得分: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

从django-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()