In my template I have for loop. As you can see the id for each radiobutton is represented by {{stud.id}}
.
{{stud.nameAndSurname}}
shows the name and the surname of the student(in browser I can see name and surname of the corresponding student).
<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>
In my view.py I have:
class MyClass(View):
def get(...):
...
def post(self,request, pk):
myVar = request.POST.get("student")
return HttpResponse(myVar)
If I click submit button i want to go to another page that shows me name and surname of the selected student. Now the issue is that instead of the student's name and surname it's showing me simply written "on"
Radio buttons need to have a value. (Note that the part after the end of the input is the label, and should be enclosed in a label
element.)
<input type="radio" id="student_{{ stud.id }}" name="student" value="{{ stud.id }}">
<label for="student_{{ stud.id }}">{{ student.nameAndSurname }}</label>
Signup.html django template
<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
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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With