1

I am having a MultipleChoiceField to select language choices from a list of 7 languages.

LANGUAGES = (
   ('en', _('English')),
   ('pl', _('Polish')),
   ('da', _('Danish')),
)

Inside my forms.py, I have

language = forms.MultipleChoiceField(choices=LANGUAGES, widget=forms.CheckboxSelectMultiple)

I am trying to pre select choices when the page is loaded. I have tried

self.fields['language'].widget.attrs.update({'initial': selected_languages})

and

self.fields['language'].initial = selected_languages

inside __init__

my selected_languages has value like ['en', 'fr' ]

Edit: The initial added is getting added as an html attribute inside every language checkbox.

<label for="id_language_0"><input type="checkbox" name="language"   value="en" initial="['en', 'fr']" id="id_language_0">English</label>

I this the right way to pre select fields in django forms? This method is not working for me. Is there any other method? NB: I am using this form inside django admin

Sudheer K
  • 1,244
  • 2
  • 18
  • 31
  • It would be helpful if you included more context from the relevant files – Demetris May 31 '18 at 12:44
  • Why don't you add the `initial` directly to the `MultipleChoiceField` as described here https://docs.djangoproject.com/en/stable/ref/forms/fields/#initial ? – jrief Jun 01 '18 at 21:17
  • Because the initial value is different for different instance. So I can't do that – Sudheer K Jun 02 '18 at 05:45

0 Answers0