yes but definitely not the current code, because i cannot subclass
with super

On 14 Nov, 15:46, ptone <pres...@ptone.com> wrote:
> On Nov 13, 11:55 pm, Ric <riccardodivirgi...@gmail.com> wrote:
>
>
>
>
>
>
>
>
>
> > the field class define this code
>
> >     def formfield(self, form_class=forms.CharField, **kwargs):
> >         """
> >         Returns a django.forms.Field instance for this database Field.
> >         """
> >         defaults = {'required': not self.blank,
> >                     'label': capfirst(self.verbose_name),
> >                     'help_text': self.help_text}
> >         if self.has_default():
> >             if callable(self.default):
> >                 defaults['initial'] = self.default
> >                 defaults['show_hidden_initial'] = True
> >             else:
> >                 defaults['initial'] = self.get_default()
> >         if self.choices:
> >             # Fields with choices get special treatment.
> >             include_blank = (self.blank or
> >                              not (self.has_default() or 'initial' in
> > kwargs))
> >             defaults['choices'] =
> > self.get_choices(include_blank=include_blank)
> >             defaults['coerce'] = self.to_python
> >             if self.null:
> >                 defaults['empty_value'] = None
> >             form_class = forms.TypedChoiceField
> >             # Many of the subclass-specific formfield arguments
> > (min_value,
> >             # max_value) don't apply for choice fields, so be sure to
> > only pass
> >             # the values that TypedChoiceField will understand.
> >             for k in kwargs.keys():
> >                 if k not in ('coerce', 'empty_value', 'choices',
> > 'required',
> >                              'widget', 'label', 'initial',
> > 'help_text',
> >                              'error_messages', 'show_hidden_initial'):
> >                     del kwargs[k]
> >         defaults.update(kwargs)
> >         return form_class(**defaults)
>
> > this code says
> > if self.choices:
> >     form_class = forms.TypedChoiceField
>
> > this means that if you have a field that got choices, even if you pass
> > during the super an argument different than forms.TypedChoiceField,
> > you'll always get forms.TypedChoiceField
>
> > must be defaults["form_class"] = forms.TypedChoiceField
>
> do you mean something like:
>
> if self.choices:
>     if 'form_class' in defaults:
>         form_class = defaults['form_class']
>     else:
>         form_class = forms.TypedChoiceField
>
> -Preston
> form_class =

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

Reply via email to