class myForm(forms.Form):
    def __init__(self, *args, **kwargs):
        try:
            self.q_prime = kwargs.pop('q')
        except:
            pass
        super(myForm, self).__init__(*args, **kwargs)


    choice = forms.ChoiceField(label="My choice",
                       choices=myChoice(self.q_prime).choices()) #I

As Joe says above, the choice field is a class-level field whereas
"self.*" is instance level. So, this doesn't work.

Try this instead:

class myForm(forms.Form):
    def __init__(self, *args, **kwargs):
                self.q_prime = [] # default choices here?
        try:
            self.q_prime = kwargs.pop('q')
        except:
            pass
        super(myForm, self).__init__(*args, **kwargs)
                self.fields['choice'] = forms.ChoiceField(label="My choice",
                       choices=myChoice(self.q_prime).choices()) #I

Note the indentation of that last line -- it now belongs to the
__init__ method and not to the class.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to