1
0
mirror of https://github.com/django/django.git synced 2025-06-14 16:09:12 +00:00

magic-removal: Fixed bug in Field.get_validator_unique_lookup_type. Also, negligible spacing/formatting changes

git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@1827 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-01-05 17:28:53 +00:00
parent 078a1cfd3d
commit 9033ba7d36
3 changed files with 19 additions and 22 deletions

View File

@ -110,11 +110,11 @@ class Field(object):
# Set db_index to True if the field has a relationship and doesn't explicitly set db_index. # Set db_index to True if the field has a relationship and doesn't explicitly set db_index.
self.db_index = db_index self.db_index = db_index
self.deprecated_args = [] self.deprecated_args = []
if core: if core:
self.deprecated_args.append('core') self.deprecated_args.append('core')
# Increase the creation counter, and save our local copy. # Increase the creation counter, and save our local copy.
self.creation_counter = Field.creation_counter self.creation_counter = Field.creation_counter
Field.creation_counter += 1 Field.creation_counter += 1
@ -218,7 +218,7 @@ class Field(object):
field_objs = self.get_manipulator_field_objs() field_objs = self.get_manipulator_field_objs()
return (field_objs,params) return (field_objs,params)
def get_fields_and_manipulators(self, opts, manipulator, follow ): def get_fields_and_manipulators(self, opts, manipulator, follow):
change = manipulator.change change = manipulator.change
rel = manipulator.name_prefix != '' rel = manipulator.name_prefix != ''
name_prefix = manipulator.name_prefix name_prefix = manipulator.name_prefix
@ -251,7 +251,7 @@ class Field(object):
# Only add is_required=True if the field cannot be blank. Primary keys # Only add is_required=True if the field cannot be blank. Primary keys
# are a special case. # are a special case.
params['is_required'] = not self.blank and not self.primary_key params['is_required'] = not self.blank and not self.primary_key
# If this field is in a related context, check whether any other fields # If this field is in a related context, check whether any other fields
# in the related object have core=True. If so, add a validator -- # in the related object have core=True. If so, add a validator --
@ -276,7 +276,7 @@ class Field(object):
return [man(field_name=field_names[i], **params) for i, man in enumerate(field_objs)] return [man(field_name=field_names[i], **params) for i, man in enumerate(field_objs)]
def get_validator_unique_lookup_type(self): def get_validator_unique_lookup_type(self):
return '%s__exact' % f.name return '%s__exact' % self.name
def get_manipulator_new_data(self, new_data, rel=False): def get_manipulator_new_data(self, new_data, rel=False):
""" """
@ -353,7 +353,7 @@ class AutoField(Field):
def contribute_to_class(self, cls, name): def contribute_to_class(self, cls, name):
if cls._meta.has_auto_field: if cls._meta.has_auto_field:
raise AssertionError, "A model can't have more than one AutoField." raise AssertionError, "A model can't have more than one AutoField."
super(AutoField, self).contribute_to_class(cls, name) super(AutoField, self).contribute_to_class(cls, name)
cls._meta.has_auto_field = True cls._meta.has_auto_field = True
@ -516,8 +516,8 @@ class FileField(Field):
setattr(cls, 'get_%s_filename' % self.name, curry(cls._get_FIELD_filename, field=self)) setattr(cls, 'get_%s_filename' % self.name, curry(cls._get_FIELD_filename, field=self))
setattr(cls, 'get_%s_url' % self.name, curry(cls._get_FIELD_url, field=self)) setattr(cls, 'get_%s_url' % self.name, curry(cls._get_FIELD_url, field=self))
setattr(cls, 'get_%s_size' % self.name, curry(cls._get_FIELD_size, field=self)) setattr(cls, 'get_%s_size' % self.name, curry(cls._get_FIELD_size, field=self))
setattr(cls, 'save_%s_file' % self.name, setattr(cls, 'save_%s_file' % self.name,
lambda instance, filename, raw_contents: lambda instance, filename, raw_contents:
instance._save_FIELD_file(self,filename, raw_contents) instance._save_FIELD_file(self,filename, raw_contents)
) )
dispatcher.connect( dispatcher.connect(
@ -721,10 +721,10 @@ class OrderingField(IntegerField):
self.wrt = with_respect_to self.wrt = with_respect_to
kwargs['null'] = True kwargs['null'] = True
IntegerField.__init__(self, **kwargs ) IntegerField.__init__(self, **kwargs )
def get_internal_type(self): def get_internal_type(self):
return "IntegerField" return "IntegerField"
def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True): def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
return [formfields.HiddenField(name_prefix + self.name) ] return [formfields.HiddenField(name_prefix + self.name) ]

View File

@ -2,13 +2,11 @@ from django.core.exceptions import ObjectDoesNotExist
from django.core import formfields from django.core import formfields
from django.core.formfields import Manipulator from django.core.formfields import Manipulator
from django.db.models.fields import FileField, AutoField from django.db.models.fields import FileField, AutoField
from django.db.models.exceptions import BadCommand from django.db.models.exceptions import BadCommand
from django.dispatch import dispatcher from django.dispatch import dispatcher
from django.db.models import signals from django.db.models import signals
from django.utils.functional import curry from django.utils.functional import curry
from django.utils.datastructures import dot_expand, MultiValueDict from django.utils.datastructures import dot_expand, MultiValueDict
import types import types
def add_manipulators(sender): def add_manipulators(sender):
@ -34,7 +32,7 @@ class ManipulatorDescriptor(object):
if not self.man: if not self.man:
# Create a class which inherits from the MANIPULATOR class given in the class, # Create a class which inherits from the MANIPULATOR class given in the class,
# and the appropriate automatic manipulator, # and the appropriate automatic manipulator,
bases = [ self.base ] bases = [self.base]
if hasattr(type, 'MANIPULATOR'): if hasattr(type, 'MANIPULATOR'):
bases = [type.MANIPULATOR] + bases bases = [type.MANIPULATOR] + bases
self.man = types.ClassType(self.name, tuple(bases), {}) self.man = types.ClassType(self.name, tuple(bases), {})

View File

@ -7,11 +7,11 @@ class RelatedManipulatorCollection(ManipulatorCollection):
self.related = related self.related = related
super(RelatedManipulatorCollection, self).__init__( super(RelatedManipulatorCollection, self).__init__(
related.model,follow,name_parts) related.model,follow,name_parts)
def _save_child(self, manip, parent_key): def _save_child(self, manip, parent_key):
setattr(manip.original_object, self.related.field.attname, parent_key) setattr(manip.original_object, self.related.field.attname, parent_key)
super(RelatedManipulatorCollection, self)._save_child(manip, parent_key) super(RelatedManipulatorCollection, self)._save_child(manip, parent_key)
def _get_list(self): def _get_list(self):
if self.instance != None: if self.instance != None:
meth_name = 'get_%s_list' % self.related.get_method_name_part() meth_name = 'get_%s_list' % self.related.get_method_name_part()
@ -92,17 +92,16 @@ class RelatedObject(object):
over[self.field.name] = False over[self.field.name] = False
return self.opts.get_follow(over) return self.opts.get_follow(over)
def __repr__(self): def __repr__(self):
return "<RelatedObject: %s related to %s>" % (self.name, self.field.name) return "<RelatedObject: %s related to %s>" % (self.name, self.field.name)
def get_fields_and_manipulators(self, opts, manipulator, follow ): def get_fields_and_manipulators(self, opts, manipulator, follow):
return ([], self.get_manipulators(manipulator, follow) ) return ([], self.get_manipulators(manipulator, follow))
def get_manipulators(self,parent_manipulator, follow): def get_manipulators(self, parent_manipulator, follow):
name_parts = parent_manipulator.name_parts name_parts = parent_manipulator.name_parts
obj = parent_manipulator.original_object obj = parent_manipulator.original_object
return RelatedManipulatorCollection(self, name_parts, obj, follow) return RelatedManipulatorCollection(self, name_parts, obj, follow)
def bind(self, field_mapping, original, bound_related_object_class=BoundRelatedObject): def bind(self, field_mapping, original, bound_related_object_class=BoundRelatedObject):