1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

magic-removal: Merged to [2650]

git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2651 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-04-10 03:41:15 +00:00
parent 1345cd0c17
commit a1aba10865
8 changed files with 30 additions and 30 deletions

View File

@ -88,7 +88,7 @@ def result_headers(cl):
# Non-field list_display values don't get ordering capability. # Non-field list_display values don't get ordering capability.
yield {"text": header} yield {"text": header}
else: else:
if isinstance(f.rel, models.ManyToOne) and f.null: if isinstance(f.rel, models.ManyToOneRel) and f.null:
yield {"text": f.verbose_name} yield {"text": f.verbose_name}
else: else:
th_classes = [] th_classes = []
@ -128,7 +128,7 @@ def items_for_result(cl, result):
else: else:
field_val = getattr(result, f.attname) field_val = getattr(result, f.attname)
if isinstance(f.rel, models.ManyToOne): if isinstance(f.rel, models.ManyToOneRel):
if field_val is not None: if field_val is not None:
result_repr = getattr(result, f.name) result_repr = getattr(result, f.name)
else: else:

View File

@ -102,7 +102,7 @@ class FieldWrapper(object):
return self.field.blank and ' class="optional"' or '' return self.field.blank and ' class="optional"' or ''
def use_raw_id_admin(self): def use_raw_id_admin(self):
return isinstance(self.field.rel, (models.ManyToOne, models.ManyToMany)) \ return isinstance(self.field.rel, (models.ManyToOneRel, models.ManyToManyRel)) \
and self.field.rel.raw_id_admin and self.field.rel.raw_id_admin
class FormFieldCollectionWrapper(object): class FormFieldCollectionWrapper(object):
@ -182,7 +182,7 @@ auto_populated_field_script = register.simple_tag(auto_populated_field_script)
def filter_interface_script_maybe(bound_field): def filter_interface_script_maybe(bound_field):
f = bound_field.field f = bound_field.field
if f.rel and isinstance(f.rel, models.ManyToMany) and f.rel.filter_interface: if f.rel and isinstance(f.rel, models.ManyToManyRel) and f.rel.filter_interface:
return '<script type="text/javascript">addEvent(window, "load", function(e) {' \ return '<script type="text/javascript">addEvent(window, "load", function(e) {' \
' SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % ( ' SelectFilter.init("id_%s", "%s", %s, "%s"); });</script>\n' % (
f.name, f.verbose_name, f.rel.filter_interface-1, settings.ADMIN_MEDIA_PREFIX) f.name, f.verbose_name, f.rel.filter_interface-1, settings.ADMIN_MEDIA_PREFIX)

View File

@ -37,7 +37,7 @@ IS_POPUP_VAR = 'pop'
# Text to display within change-list table cells if the value is blank. # Text to display within change-list table cells if the value is blank.
EMPTY_CHANGELIST_VALUE = '(None)' EMPTY_CHANGELIST_VALUE = '(None)'
use_raw_id_admin = lambda field: isinstance(field.rel, (models.ManyToOne, models.ManyToMany)) and field.rel.raw_id_admin use_raw_id_admin = lambda field: isinstance(field.rel, (models.ManyToOneRel, models.ManyToManyRel)) and field.rel.raw_id_admin
class IncorrectLookupParameters(Exception): class IncorrectLookupParameters(Exception):
pass pass
@ -116,7 +116,7 @@ class AdminBoundField(object):
self.raw_id_admin = use_raw_id_admin(field) self.raw_id_admin = use_raw_id_admin(field)
self.is_date_time = isinstance(field, models.DateTimeField) self.is_date_time = isinstance(field, models.DateTimeField)
self.is_file_field = isinstance(field, models.FileField) self.is_file_field = isinstance(field, models.FileField)
self.needs_add_label = field.rel and isinstance(field.rel, models.ManyToOne) or isinstance(field.rel, models.ManyToMany) and field.rel.to._meta.admin self.needs_add_label = field.rel and isinstance(field.rel, models.ManyToOneRel) or isinstance(field.rel, models.ManyToManyRel) and field.rel.to._meta.admin
self.hidden = isinstance(self.field, models.AutoField) self.hidden = isinstance(self.field, models.AutoField)
self.first = False self.first = False
@ -140,9 +140,9 @@ class AdminBoundField(object):
try: try:
return self._display return self._display
except AttributeError: except AttributeError:
if isinstance(self.field.rel, models.ManyToOne): if isinstance(self.field.rel, models.ManyToOneRel):
self._display = getattr(self.original, 'get_%s' % self.field.name)() self._display = getattr(self.original, 'get_%s' % self.field.name)()
elif isinstance(self.field.rel, models.ManyToMany): elif isinstance(self.field.rel, models.ManyToManyRel):
self._display = ", ".join([str(obj) for obj in getattr(self.original, 'get_%s_list' % self.field.rel.singular)()]) self._display = ", ".join([str(obj) for obj in getattr(self.original, 'get_%s_list' % self.field.rel.singular)()])
return self._display return self._display
@ -413,7 +413,7 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
continue continue
opts_seen.append(related.opts) opts_seen.append(related.opts)
rel_opts_name = related.get_accessor_name() rel_opts_name = related.get_accessor_name()
if isinstance(related.field.rel, models.OneToOne): if isinstance(related.field.rel, models.OneToOneRel):
try: try:
sub_obj = getattr(obj, rel_opts_name) sub_obj = getattr(obj, rel_opts_name)
except ObjectDoesNotExist: except ObjectDoesNotExist:
@ -650,7 +650,7 @@ class ChangeList(object):
except models.FieldDoesNotExist: except models.FieldDoesNotExist:
pass pass
else: else:
if not isinstance(f.rel, models.ManyToOne) or not f.null: if not isinstance(f.rel, models.ManyToOneRel) or not f.null:
order_field = f.name order_field = f.name
except (IndexError, ValueError): except (IndexError, ValueError):
pass # Invalid ordering specified. Just use the default. pass # Invalid ordering specified. Just use the default.
@ -679,7 +679,7 @@ class ChangeList(object):
except models.FieldDoesNotExist: except models.FieldDoesNotExist:
pass pass
else: else:
if isinstance(f.rel, models.ManyToOne): if isinstance(f.rel, models.ManyToOneRel):
qs = qs.select_related() qs = qs.select_related()
break break
@ -692,7 +692,7 @@ class ChangeList(object):
except models.FieldDoesNotExist: except models.FieldDoesNotExist:
pass pass
else: else:
if isinstance(f.rel, models.ManyToOne): if isinstance(f.rel, models.ManyToOneRel):
rel_ordering = f.rel.to._meta.ordering and f.rel.to._meta.ordering[0] or f.rel.to._meta.pk.column rel_ordering = f.rel.to._meta.ordering and f.rel.to._meta.ordering[0] or f.rel.to._meta.pk.column
lookup_order_field = '%s.%s' % (f.rel.to._meta.db_table, rel_ordering) lookup_order_field = '%s.%s' % (f.rel.to._meta.db_table, rel_ordering)

View File

@ -896,7 +896,7 @@ def get_validation_errors(outfile, app=None):
except models.FieldDoesNotExist: except models.FieldDoesNotExist:
e.add(opts, '"unique_together" refers to %s, a field that doesn\'t exist. Check your syntax.' % field_name) e.add(opts, '"unique_together" refers to %s, a field that doesn\'t exist. Check your syntax.' % field_name)
else: else:
if isinstance(f.rel, models.ManyToMany): if isinstance(f.rel, models.ManyToManyRel):
e.add(opts, '"unique_together" refers to %s. ManyToManyFields are not supported in unique_together.' % f.name) e.add(opts, '"unique_together" refers to %s. ManyToManyFields are not supported in unique_together.' % f.name)
return len(e.errors) return len(e.errors)

View File

@ -3,7 +3,7 @@ import django.db.models.manager
from django.core import validators from django.core import validators
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db.models.fields import AutoField, ImageField, FieldDoesNotExist from django.db.models.fields import AutoField, ImageField, FieldDoesNotExist
from django.db.models.fields.related import OneToOne, ManyToOne from django.db.models.fields.related import OneToOneRel, ManyToOneRel
from django.db.models.related import RelatedObject from django.db.models.related import RelatedObject
from django.db.models.query import orderlist2sql, delete_objects from django.db.models.query import orderlist2sql, delete_objects
from django.db.models.options import Options, AdminOptions from django.db.models.options import Options, AdminOptions
@ -88,7 +88,7 @@ class Model(object):
dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs) dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs)
if kwargs: if kwargs:
for f in self._meta.fields: for f in self._meta.fields:
if isinstance(f.rel, ManyToOne): if isinstance(f.rel, ManyToOneRel):
try: try:
# Assume object instance was passed in. # Assume object instance was passed in.
rel_obj = kwargs.pop(f.name) rel_obj = kwargs.pop(f.name)
@ -234,7 +234,7 @@ class Model(object):
for related in self._meta.get_all_related_objects(): for related in self._meta.get_all_related_objects():
rel_opts_name = related.get_accessor_name() rel_opts_name = related.get_accessor_name()
if isinstance(related.field.rel, OneToOne): if isinstance(related.field.rel, OneToOneRel):
try: try:
sub_obj = getattr(self, rel_opts_name) sub_obj = getattr(self, rel_opts_name)
except ObjectDoesNotExist: except ObjectDoesNotExist:

View File

@ -431,7 +431,7 @@ class ForeignKey(RelatedField, Field):
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.") warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.")
kwargs['edit_inline'] = kwargs.pop('edit_inline_type') kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
kwargs['rel'] = ManyToOne(to, to_field, kwargs['rel'] = ManyToOneRel(to, to_field,
num_in_admin=kwargs.pop('num_in_admin', 3), num_in_admin=kwargs.pop('num_in_admin', 3),
min_num_in_admin=kwargs.pop('min_num_in_admin', None), min_num_in_admin=kwargs.pop('min_num_in_admin', None),
max_num_in_admin=kwargs.pop('max_num_in_admin', None), max_num_in_admin=kwargs.pop('max_num_in_admin', None),
@ -514,7 +514,7 @@ class OneToOneField(RelatedField, IntegerField):
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.") warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.")
kwargs['edit_inline'] = kwargs.pop('edit_inline_type') kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
kwargs['rel'] = OneToOne(to, to_field, kwargs['rel'] = OneToOneRel(to, to_field,
num_in_admin=kwargs.pop('num_in_admin', 0), num_in_admin=kwargs.pop('num_in_admin', 0),
edit_inline=kwargs.pop('edit_inline', False), edit_inline=kwargs.pop('edit_inline', False),
related_name=kwargs.pop('related_name', None), related_name=kwargs.pop('related_name', None),
@ -544,7 +544,7 @@ class OneToOneField(RelatedField, IntegerField):
class ManyToManyField(RelatedField, Field): class ManyToManyField(RelatedField, Field):
def __init__(self, to, **kwargs): def __init__(self, to, **kwargs):
kwargs['verbose_name'] = kwargs.get('verbose_name', None) kwargs['verbose_name'] = kwargs.get('verbose_name', None)
kwargs['rel'] = ManyToMany(to, kwargs.pop('singular', None), kwargs['rel'] = ManyToManyRel(to, kwargs.pop('singular', None),
num_in_admin=kwargs.pop('num_in_admin', 0), num_in_admin=kwargs.pop('num_in_admin', 0),
related_name=kwargs.pop('related_name', None), related_name=kwargs.pop('related_name', None),
filter_interface=kwargs.pop('filter_interface', None), filter_interface=kwargs.pop('filter_interface', None),
@ -649,7 +649,7 @@ class ManyToManyField(RelatedField, Field):
def set_attributes_from_rel(self): def set_attributes_from_rel(self):
pass pass
class ManyToOne: class ManyToOneRel:
def __init__(self, to, field_name, num_in_admin=3, min_num_in_admin=None, def __init__(self, to, field_name, num_in_admin=3, min_num_in_admin=None,
max_num_in_admin=None, num_extra_on_change=1, edit_inline=False, max_num_in_admin=None, num_extra_on_change=1, edit_inline=False,
related_name=None, limit_choices_to=None, lookup_overrides=None, raw_id_admin=False): related_name=None, limit_choices_to=None, lookup_overrides=None, raw_id_admin=False):
@ -670,7 +670,7 @@ class ManyToOne:
"Returns the Field in the 'to' object to which this relationship is tied." "Returns the Field in the 'to' object to which this relationship is tied."
return self.to._meta.get_field(self.field_name) return self.to._meta.get_field(self.field_name)
class OneToOne(ManyToOne): class OneToOneRel(ManyToOneRel):
def __init__(self, to, field_name, num_in_admin=0, edit_inline=False, def __init__(self, to, field_name, num_in_admin=0, edit_inline=False,
related_name=None, limit_choices_to=None, lookup_overrides=None, related_name=None, limit_choices_to=None, lookup_overrides=None,
raw_id_admin=False): raw_id_admin=False):
@ -682,7 +682,7 @@ class OneToOne(ManyToOne):
self.raw_id_admin = raw_id_admin self.raw_id_admin = raw_id_admin
self.multiple = False self.multiple = False
class ManyToMany: class ManyToManyRel:
def __init__(self, to, singular=None, num_in_admin=0, related_name=None, def __init__(self, to, singular=None, num_in_admin=0, related_name=None,
filter_interface=None, limit_choices_to=None, raw_id_admin=False, symmetrical=True): filter_interface=None, limit_choices_to=None, raw_id_admin=False, symmetrical=True):
self.to = to self.to = to
@ -696,4 +696,4 @@ class ManyToMany:
self.symmetrical = symmetrical self.symmetrical = symmetrical
self.multiple = True self.multiple = True
assert not (self.raw_id_admin and self.filter_interface), "ManyToMany relationships may not use both raw_id_admin and filter_interface" assert not (self.raw_id_admin and self.filter_interface), "ManyToManyRels may not use both raw_id_admin and filter_interface"

View File

@ -272,10 +272,10 @@ class AutomaticChangeManipulator(AutomaticManipulator):
super(AutomaticChangeManipulator, self).__init__(follow=follow) super(AutomaticChangeManipulator, self).__init__(follow=follow)
def manipulator_validator_unique_together(field_name_list, opts, self, field_data, all_data): def manipulator_validator_unique_together(field_name_list, opts, self, field_data, all_data):
from django.db.models.fields.related import ManyToOne from django.db.models.fields.related import ManyToOneRel
from django.utils.text import get_text_list from django.utils.text import get_text_list
field_list = [opts.get_field(field_name) for field_name in field_name_list] field_list = [opts.get_field(field_name) for field_name in field_name_list]
if isinstance(field_list[0].rel, ManyToOne): if isinstance(field_list[0].rel, ManyToOneRel):
kwargs = {'%s__%s__iexact' % (field_name_list[0], field_list[0].rel.field_name): field_data} kwargs = {'%s__%s__iexact' % (field_name_list[0], field_list[0].rel.field_name): field_data}
else: else:
kwargs = {'%s__iexact' % field_name_list[0]: field_data} kwargs = {'%s__iexact' % field_name_list[0]: field_data}
@ -288,7 +288,7 @@ def manipulator_validator_unique_together(field_name_list, opts, self, field_dat
# This will be caught by another validator, assuming the field # This will be caught by another validator, assuming the field
# doesn't have blank=True. # doesn't have blank=True.
return return
if isinstance(f.rel, ManyToOne): if isinstance(f.rel, ManyToOneRel):
kwargs['%s__pk' % f.name] = field_val kwargs['%s__pk' % f.name] = field_val
else: else:
kwargs['%s__iexact' % f.name] = field_val kwargs['%s__iexact' % f.name] = field_val
@ -303,13 +303,13 @@ def manipulator_validator_unique_together(field_name_list, opts, self, field_dat
{'object': capfirst(opts.verbose_name), 'type': field_list[0].verbose_name, 'field': get_text_list(field_name_list[1:], 'and')} {'object': capfirst(opts.verbose_name), 'type': field_list[0].verbose_name, 'field': get_text_list(field_name_list[1:], 'and')}
def manipulator_validator_unique_for_date(from_field, date_field, opts, lookup_type, self, field_data, all_data): def manipulator_validator_unique_for_date(from_field, date_field, opts, lookup_type, self, field_data, all_data):
from django.db.models.fields.related import ManyToOne from django.db.models.fields.related import ManyToOneRel
date_str = all_data.get(date_field.get_manipulator_field_names('')[0], None) date_str = all_data.get(date_field.get_manipulator_field_names('')[0], None)
date_val = forms.DateField.html2python(date_str) date_val = forms.DateField.html2python(date_str)
if date_val is None: if date_val is None:
return # Date was invalid. This will be caught by another validator. return # Date was invalid. This will be caught by another validator.
lookup_kwargs = {'%s__year' % date_field.name: date_val.year} lookup_kwargs = {'%s__year' % date_field.name: date_val.year}
if isinstance(from_field.rel, ManyToOne): if isinstance(from_field.rel, ManyToOneRel):
lookup_kwargs['%s__pk' % from_field.name] = field_data lookup_kwargs['%s__pk' % from_field.name] = field_data
else: else:
lookup_kwargs['%s__iexact' % from_field.name] = field_data lookup_kwargs['%s__iexact' % from_field.name] = field_data

View File

@ -1,5 +1,5 @@
from django.db.models.related import RelatedObject from django.db.models.related import RelatedObject
from django.db.models.fields.related import ManyToMany from django.db.models.fields.related import ManyToManyRel
from django.db.models.fields import AutoField, FieldDoesNotExist from django.db.models.fields import AutoField, FieldDoesNotExist
from django.db.models.loading import get_models from django.db.models.loading import get_models
from django.db.models.query import orderlist2sql from django.db.models.query import orderlist2sql
@ -76,7 +76,7 @@ class Options:
# Insert the given field in the order in which it was created, using # Insert the given field in the order in which it was created, using
# the "creation_counter" attribute of the field. # the "creation_counter" attribute of the field.
# Move many-to-many related fields from self.fields into self.many_to_many. # Move many-to-many related fields from self.fields into self.many_to_many.
if field.rel and isinstance(field.rel, ManyToMany): if field.rel and isinstance(field.rel, ManyToManyRel):
self.many_to_many.insert(bisect(self.many_to_many, field), field) self.many_to_many.insert(bisect(self.many_to_many, field), field)
else: else:
self.fields.insert(bisect(self.fields, field), field) self.fields.insert(bisect(self.fields, field), field)