Django

Code

Changeset 2802

Show
Ignore:
Timestamp:
05/01/06 14:04:30 (2 years ago)
Author:
jkocherhans
Message:

magic-removal: Refs #1681. Fixed side effect of [2800] on ManyToManyField?. Unfortunately this involved copying and pasting a method for now. This ought to be cleaned up when validation-aware models land.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/magic-removal/django/db/models/fields/related.py

    r2801 r2802  
    7676        # but this can be overridden with the "related_name" option. 
    7777        return self.rel.related_name or opts.object_name.lower() 
    78  
    79     def prepare_field_objs_and_params(self, manipulator, name_prefix): 
    80         params = {'validator_list': self.validator_list[:], 'member_name': name_prefix + self.attname} 
    81         if self.rel.raw_id_admin: 
    82             field_objs = self.get_manipulator_field_objs() 
    83             params['validator_list'].append(curry(manipulator_valid_rel_key, self, manipulator)) 
    84         else: 
    85             if self.radio_admin: 
    86                 field_objs = [forms.RadioSelectField] 
    87                 params['ul_class'] = get_ul_class(self.radio_admin) 
    88             else: 
    89                 if self.null: 
    90                     field_objs = [forms.NullSelectField] 
    91                 else: 
    92                     field_objs = [forms.SelectField] 
    93             params['choices'] = self.get_choices_default() 
    94         return field_objs, params 
    9578 
    9679class SingleRelatedObjectDescriptor(object): 
     
    469452        return '%s__%s__exact' % (self.name, self.rel.get_related_field().name) 
    470453 
     454    def prepare_field_objs_and_params(self, manipulator, name_prefix): 
     455        params = {'validator_list': self.validator_list[:], 'member_name': name_prefix + self.attname} 
     456        if self.rel.raw_id_admin: 
     457            field_objs = self.get_manipulator_field_objs() 
     458            params['validator_list'].append(curry(manipulator_valid_rel_key, self, manipulator)) 
     459        else: 
     460            if self.radio_admin: 
     461                field_objs = [forms.RadioSelectField] 
     462                params['ul_class'] = get_ul_class(self.radio_admin) 
     463            else: 
     464                if self.null: 
     465                    field_objs = [forms.NullSelectField] 
     466                else: 
     467                    field_objs = [forms.SelectField] 
     468            params['choices'] = self.get_choices_default() 
     469        return field_objs, params 
     470 
    471471    def get_manipulator_field_objs(self): 
    472472        rel_field = self.rel.get_related_field() 
     
    532532    def get_validator_unique_lookup_type(self): 
    533533        return '%s__%s__exact' % (self.name, self.rel.get_related_field().name) 
     534 
     535    # TODO: Copied from ForeignKey... putting this in RelatedField adversely affects 
     536    # ManyToManyField. This works for now. 
     537    def prepare_field_objs_and_params(self, manipulator, name_prefix): 
     538        params = {'validator_list': self.validator_list[:], 'member_name': name_prefix + self.attname} 
     539        if self.rel.raw_id_admin: 
     540            field_objs = self.get_manipulator_field_objs() 
     541            params['validator_list'].append(curry(manipulator_valid_rel_key, self, manipulator)) 
     542        else: 
     543            if self.radio_admin: 
     544                field_objs = [forms.RadioSelectField] 
     545                params['ul_class'] = get_ul_class(self.radio_admin) 
     546            else: 
     547                if self.null: 
     548                    field_objs = [forms.NullSelectField] 
     549                else: 
     550                    field_objs = [forms.SelectField] 
     551            params['choices'] = self.get_choices_default() 
     552        return field_objs, params 
    534553 
    535554    def contribute_to_class(self, cls, name):