Здравствуйте, помогите пожалуйста разобраться! У меня есть несколько вопросов.
У меня есть форма редактирования пользовательских данных. В модели данных
User (django.contrib.auth.models), которую предоставляет Django есть поля как:
is_superuser
и
is_staff
. Данные поля являются
BooleanField и к ним применяется виджет c
checkbox.
Хочу добавить переключатели (radio) в форму как на рисунке снизу, но как поменять виджет и отменить переключатель как checked у тех значений к которых стоит True при открытии формы редактирования? К примеру если
is_superuser=True
, то отмеченным должен быть первый переключатель (суперпользователь). Если
is_staff=True
, то отмеченным должен быть второй переключатель (модератор). Если is_superuser и is_staff оба равны False, то отметить третий переключатель.
1. Можно создать форму, которая наследуется от
forms.Form и во вьюшке вручную брать значение полей и записывать в БД. Но в этом варианте не понимаю как отметить нужный переключатель при открытии формы редактирования.
class UserChangeForm(forms.Form):
CHOICES = (('1', 'Суперпользователь',), ('2', 'Модератор',), ('3', 'Простой пользователь',))
user_role = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES)
2. Второй вариант создать форму, которая наследуется от
UserChangeForm (django.contrib.auth.forms). В данном варианте нужно поменять как-то виджеты для полей
is_superuser
и
is_staff
.
Что можете посоветовать? Интересно узнать ваши идеи?