Показывать чекбокс в django marked при инстанцировании формы

У меня есть следующий код: views.py def actualizar_rutina(request, id_rutina): if not request.user.es_entrenador: messages.error(request, 'Usted no tiene permisos para acceder a esta pagina') return redirect('mostrar_rutina')

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

Models.py

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

form.py

class RutinaForm(forms.ModelForm):
    class Meta:
        model = Rutina
        exclude = ('dias_descanso',)

    dias_entrenamiento = forms.MultipleChoiceField(
        choices=DIAS_SEMANA,
        widget=forms.CheckboxSelectMultiple(),
        required=False
    )

Происходит так: когда я создаю форму, которая показывает html, поля (chekbox) не проверяются, они остаются пустыми, а я хочу, чтобы проверялись только те поля, которые должны быть созданы с экземпляром, который отправляет пользователь. Имейте в виду, что день тренировки сохраняется примерно так: training_days=['MON','TUE'] и т.д. Как я могу этого добиться? Спасибо

Я хочу, чтобы были установлены только те флажки, которые должны быть инстанцированы с экземпляром, отправленным пользователем.

Сделайте свой dias_entrenamiento в виде JSONField [Django-doc]:

def default_dias_entrenamiento():
    return ['MON', 'TUE']


class Rutina(models.Model):
    dias_entrenamiento = models.JSONField(default=default_dias_entrenamiento)
    # …

Это позволяет нам сохранить список элементов в виде JSON-блоба, но при этом реконструировать его, что часто становится основной проблемой для получения элемента обратно.

Вернуться на верх