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