У меня есть форма, нажимая кнопку «информация» из таблицы, я получаю информацию о пользователе и вставляю ее в форму, все это работает, но не для MultipleChoiceField:DJANGO Неисправность для ввода начального значения MultipleChoiceField
data = {'name': name_surname[0], 'surname': name_surname[1], 'c02': retrieved.c02, 'dep': retrieved.dept_no,
'job': retrieved.job_code, 'location': retrieved.c03, 'fbd_role': retrieved.c04, 'team_id': TEAM_ID_RETRIEVED}
form = RegForm(initial=data)
form.set_readonly()
return render(request, insert_form_address,
{'form': form, 'action': 'info', 'pk': pk, 'profiles': profile_list})
это мой взгляд код, один я использую, чтобы заполнить форму со значениями пользователя, каждое поле было правильно оценено с начальным значением, но не последняя, team_id.
Пример данных для заполнения поля team_id является (Это список по умолчанию объявлен в форме):
TEAM_ID = {('POCM_A09', 'POCM_A09'),
('POCM_A11', 'POCM_A11'),
('POCM_A13', 'POCM_A13'),
('POCM_A15', 'POCM_A15'),
('POCM_A16', 'POCM_A16'),
('POCM_A18', 'POCM_A18')}
И давайте предположим, что я хочу, чтобы инициализировать его только с некоторыми значениями, те, связанные с что пользователь (этот список Beene передается в режиме инициализации, он не работает, он по-прежнему занимает список по умолчанию ..)
TEAM_ID_RETRIEVED = {('POCM_A09', 'POCM_A09')}
Это форма:
class RegForm(forms.Form):
name = forms.CharField(label='Name', max_length=100)
surname = forms.CharField(label='Surname', max_length=100)
c02 = forms.CharField(label='AD ID', max_length=100)
dep = CustomModelChoiceField(label='Department', queryset=Department.objects.all())
fbd_role = forms.ChoiceField(label='FBD Role', choices=FBD_ROLES, initial=None)
location = forms.ChoiceField(label='Location', choices=LOCATION, initial=None)
job = forms.ChoiceField(label='Job', choices=JOBS)
## Unable to pass a initial value for this field..
team_id= forms.MultipleChoiceField(label='Team', choices=TEAM_ID)
action = None
user_id = None
def __init__(self, *args, **kwargs):
self.user_id = kwargs.pop('pk', None)
self.action = kwargs.pop('action', None)
super(RegForm, self).__init__(*args, **kwargs)
def set_readonly(self):
for field in self.fields:
self.fields[field].required = False
self.fields[field].widget.attrs['disabled'] = 'disabled'
Любая идея, я думаю, должно быть что-то легко исправить ... но я не понимаю, где проблема ...
Для Крошка:
data = {'name': name_surname[0], 'surname': name_surname[1], 'c02': retrieved.c02, 'dep': retrieved.dept_no,
'job': retrieved.job_code, 'location': retrieved.c03, 'fbd_role': retrieved.c04, 'team_id': 'POCM_A09'}
form = RegForm(initial=data)
это всегда показывает
СПАСИБО! :)
Это не работает ... всегда брал значения из списка ... – ivoruJavaBoy
Обновлено в виде списка. Почему у вас есть фигурные скобки? –
Вам нужны только * значения * для инициализации, вам не нужны отображаемые имена. –