*I have a dinamic form wizard step as following:*

class AltaForm6(forms.Form):
CHOICES = ((1, 1,), (2, 2,))

username = ChoiceFieldInvalid(required=True, label="Usuario", 
widget=forms.RadioSelect, choices=CHOICES)
username2 = forms.CharField(required=False, label="Otro")
def clean_username2(self):
  username = self.cleaned_data.get('username')
  username2 = self.cleaned_data.get('username2')

  if username == "Otro" and len(username2) == 0:
    raise forms.ValidationError("Debe especificar un nombre de usuario")
  return username2
def clean_username(self):
  username = self.cleaned_data.get('username')
  return username


*Then i dynamically change the choices values:*

class AltaWizard(SessionWizardView):

template_name = 'agroshare/wizard.html'
def get_form(self, step=None, data=None, files=None):
    form = super(AltaWizard, self).get_form(step, data, files)
    if step == '5':

       import logging
       logger = logging.getLogger(__name__)

       cleaned_data = self.get_cleaned_data_for_step('2') or {}
       logger.error(cleaned_data)
       nombre = cleaned_data.get('nombre')
       apellido = cleaned_data.get('apellido')

       first = possibleUid(nombre, apellido, '1')
       second = possibleUid(nombre, apellido, '2')

       if ' ' in nombre:
          third = possibleUid(nombre, apellido, '3')
          form.fields['username'].choices = ((first, first,), (second, 
second,), (third, third,), ("Otro", "Otro",))
       if ' ' in apellido:
          fourth = possibleUid(nombre, apellido, '4')
          form.fields['username'].choices = ((first, first,), (second, 
second,), (fourth, fourth,), ("Otro", "Otro",))
       else:
          form.fields['username'].choices = ((first, first,), (second, 
second,), ("Otro", "Otro",))
    if step == '5':
       form.user = self.request.user
    return form

    def render(self, form=None, **kwargs):
    form = form or self.get_form()
    context = self.get_context_data(form=form, **kwargs)
    if self.steps.current == '5':
       form2 = self.get_form('5')
       cleaned_data = self.get_cleaned_data_for_step('5') or {}
       username = cleaned_data.get('username')
       form2.fields['username'].choices = [username]
    return self.render_to_response(context)

*The problem is, when i go back to this step trough the wizard, it does not 
modify the "choices" values, it shows "CHOICES = ((1, 1,), (2, 2,))"*
* *

*How can i achieve that when i go back to this step, the form can actually 
show the values i want?*



-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to