Django ChoiceField сделать только один выбор доступным для чтения
У меня есть выпадающее поле с несколькими вариантами выбора в django, и я хочу сделать только одно значение из выпадающего поля только для чтения, чтобы его нельзя было редактировать, а остальные оставить редактируемыми
Я хочу, если это возможно, сделать это в get_form моего представления
вот что я делаю на данный момент :
form.fields["groups"].queryset = models.Group.objects.all()
form.fields["groups"].initial = models.Group.objects.filter(is_default=True)
В основном я хочу, чтобы значение по умолчанию всегда было выбрано (выбрано и отключено)
Спасибо, что направили меня в этом направлении.
Вы можете отключить поле, установив атрибут disabled [Django-doc] на True:
form.fields['groups'].queryset = models.Group.objects.all()
form.fields['groups'].initial = models.Group.objects.filter(is_default=True)
form.fields['groups'].disabled = True
Если вы установите это значение при создании формы (в методе __init__), это также предотвратит "поддельные" POST-запросы с другим значением. Другими словами: это не только отключает поле на клиенте браузера, но и предотвращает вредоносные запросы.
