Как сделать радиокнопки отдельной формы независимыми
Для уточнения, у меня есть цикл for
, выполняющий каждый employee
в employee_list
. Я печатаю форму, которую я имею в forms.py
для каждого сотрудника, которая состоит только из одной радиокнопки с вариантами выбора "Отсутствует" или "Присутствует". Однако на веб-странице, если я выбираю любой вариант для Employee 1
, а затем нажимаю на любой из вариантов для Employee 2
, он отменяет выбор, который я выбрал для Employee 1
, поскольку по какой-то причине он отображает их как один радиовыбор? Я хочу иметь возможность выбирать отдельные опции для каждого сотрудника
CODE
mark_attendance.html
{% extends 'base.html' %}
{% block content %}
<form action="{% url 'confirm' %}" method="post">
{% csrf_token %}
<div class="card mb-3">
<div class="card-header">
<i class="fas fa-table"></i>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>Employee name</th>
<th></th>
</tr>
</thead>
<tbody>
{% for employee in employee_list %}
{{<tr>
<td>{{employee}}</td>
<td>
{{ form }}
</td>
</tr>}}
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<input class="btn btn-success" type="submit" value="Submit">
</form>
{% endblock %}
forms.py
from django import forms
class AttendanceForm(forms.Form):
ATTENDANCE_CHOICES = [
('Present', 'Present'),
('Absent', 'Absent'),
]
decision = forms.CharField(label='Attendance', widget=forms.RadioSelect(choices=ATTENDANCE_CHOICES))
views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.utils import timezone
from .models import Attendance
from django.urls import reverse
from .models import Student
from .forms import AttendanceForm
from datetime import datetime
employee_list = ["John", "Jane", "Jacob", "Mark", "Jingleheimer", "Rob", "Schmidt"]
# Create your views here.
@login_required
def home(request):
return render(request, 'index.html')
@login_required
def attendance(request):
now = timezone.now().date
status = 0
return render(request, 'attendance.html', {
"date": now,
"status": status,
})
@login_required
def mark_attendance(request):
employee_list = Student.objects.all()
if request.method == "POST":
form = AttendanceForm(request.POST)
for employee in employee_list:
if form.is_valid():
decision = form.cleaned_data['decision']
status = Attendance(student=employee, date=datetime.now(), status=decision)
status.save()
return HttpResponseRedirect('mark_attendance.html')
else:
form = AttendanceForm()
return render(request, 'mark_attendance.html', {
"form": form,
"employee_list": employee_list,
})
# @login_required
# def confirm(request):
# status = request.POST.get('status')
# print(status)
Любая помощь была бы признательна, спасибо!
Вам нужен отдельный id для каждого радиоэлемента, я думаю