Hi,

I am trying to fill in *choices *for MultipleChoiceField in runtime.  I am
using formWizard and trying to return the dictionary using get_form_kwargs.

I am able set the *initial* for CharField but not *choices *for
MultipleChoiceField.
I am trying to show up dynamic choices based on the user's input in first
form. This choices will be calculated using form 1 cleaned_data.



views.py
--------

class SelectWizard(*SessionWizardView*):

    def get_form_initial(self, step):
        if step == 'select':
            initial={'release_id': 'Major.Minor.Patch'}
            return initial
        return self.initial_dict.get(step, {})

    def get_form_kwargs(self, step=None):
        if step == 'select':
            # Calculate the choices here from form 1 cleaned data

            '''
            cd = self.get_cleaned_data_for_step('main')

            '''

            return {'data': {'choices': (('1', 'Option1'),
('2','Option2'))},} # Manual for now

        return {}

    def done(self, form_list, **kwargs):
        # do something
        return HttpResponseRedirect('/queued/')


-----
forms.py

class Selection(forms.Form):

    def __init__(self, *args, **kwargs):
*         print 'kwargs', kwargs*
        super(Selection, self).__init__(*args, **kwargs)
        self.fields['release_id'] =
forms.CharField(initial=kwargs['initial']['release_id'])
        self.fields['choose_items'] =
forms.MultipleChoiceField(choices=(('3', 'Option3'), ('4', 'Option4')))
        # choices_tuple = kwargs['data']['choices']
        # self.fields['choose_items'] =
forms.MultipleChoiceField(choices=choices_tuple)

    release_id = forms.CharField()
    choose_items = forms.MultipleChoiceField()


-----
[image: Inline image 1]

*Console o/p.*

kwargs {'files': None, 'prefix': 'select', 'initial': {'release_id':
'Major.Minor.Patch'}, *'data': None*}


*Django debugging output
*

TypeError at /

'NoneType' object has no attribute '__getitem__'

 Request Method: POST  Request URL: http://127.0.0.1:8000/  Django Version:
1.4.1  Exception Type: TypeError  Exception Value:

'NoneType' object has no attribute '__getitem__'

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


<<dynamic_choices.gif>>

Reply via email to