Kontrollkästchen in Django anzeigen, das beim Instanziieren eines Formulars markiert ist
Posted: 03 Jan 2025, 17:32
Ich habe den folgenden Code:
views.py
def update_routine(request, id_routine):
if not request.user.es_trainer:
messages.error(request, „Sie verfügen nicht über die Berechtigung, auf diese Seite zuzugreifen“)
Return Redirect('show_routine')
Models.py
form.py
Wenn ich das Formular instanziiere, das den HTML-Code anzeigt, werden die Kästchen (Kontrollkästchen) nicht aktiviert, sie bleiben leer und ich möchte, dass nur diese Kästchen aktiviert werden sollen mit der Instanz instanziiert werden, die der Benutzer sendet. Beachten Sie, dass der gespeicherte Trainingstag etwa so aussieht: training_days=['MON','TUE'] usw. Wie könnte ich das erreichen?? Vielen Dank
Ich möchte, dass nur die Kontrollkästchen aktiviert werden, die mit der Instanz instanziiert werden sollen, die der Benutzer sendet.
views.py
def update_routine(request, id_routine):
if not request.user.es_trainer:
messages.error(request, „Sie verfügen nicht über die Berechtigung, auf diese Seite zuzugreifen“)
Return Redirect('show_routine')
Code: Select all
if request.method == 'GET':
rutina = get_object_or_404(Rutina, id=id_rutina)
rutinaform = RutinaForm(instance=rutina)
contexto = {
"rutinaform": rutinaform,
}
return render(request, 'core/crear_rutina.html', contexto)
else:
return HttpResponse('no se pudo actualizar')
Code: Select all
DIAS_SEMANA = [
('LUN', 'Lunes'),
('MAR', 'Martes'),
('MIE', 'Miércoles'),
('JUE', 'Jueves'),
('VIE', 'Viernes'),
('SAB', 'Sábado'),
('DOM', 'Domingo'),
]
class Rutina(models.Model):
nombre = models.CharField(blank=False)
dias_entrenamiento = models.CharField(blank=True)
dias_descanso=models.CharField(blank=True)
duracion_rutina = models.DurationField(default=datetime.timedelta(days=30), blank=True)
def __str__(self):
return self.nombre
Code: Select all
class RutinaForm(forms.ModelForm):
class Meta:
model = Rutina
exclude = ('dias_descanso',)
dias_entrenamiento = forms.MultipleChoiceField(
choices=DIAS_SEMANA,
widget=forms.CheckboxSelectMultiple(),
required=False
)
Ich möchte, dass nur die Kontrollkästchen aktiviert werden, die mit der Instanz instanziiert werden sollen, die der Benutzer sendet.