Hello,

I have a custom field whose behavior depends on a parameter show_all.
(It makes the field pull from the database for display only those
keywords where show=True.)

    class KeywordsField(forms.ChoiceField):
        def __init__(self, choices=(), required=True,
widget=widgets.KeywordsWidget, label=None, initial=None,
show_all=False, help_text=None):
            self.show_all=show_all
            super(KeywordsField, self).__init__(choices=self.choices,
required=required, widget=widget, label=label, initial=initial,
help_text=help_text)

(edited; I hope I didn't introduce any typos.)

I have a form that I'd like to call as
    f0=KeywordsForm(show_all=True)
and pass show_all to the field.  Here is my try.

    class KeywordsForm(forms.Form):
        keywords=KeywordsField(required=False)

        def __init__(self, show_all=False, *args, **kwargs):
            self.show_all = show_all
            super(KeywordsForm, self).__init__(*args, **kwargs)
            self.fields['keywords'].show_all=show_all

Setting self.fields didn't work (or I wouldn't be writing).  Neither
did calling this.
    keywords=KeywordsField(required=False,show_all=self.show_all)
Neither did a fair amount of looking at the documentation, the source,
and googling, although no doubt I didn't do it right.

Can someone give me a hint about how I should do it?  I'd be grateful.
Jim

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

Reply via email to