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 -~----------~----~----~----~------~----~------~--~---