1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

new-admin: Negligible formatting changes to django/core/meta/fields.py

git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@1414 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-11-25 01:51:19 +00:00
parent 88fb208912
commit 5c60773256

View File

@ -57,8 +57,7 @@ def manipulator_validator_unique(f, opts, self, field_data, all_data):
return return
if hasattr(self, 'original_object') and getattr(self.original_object, opts.pk.attname) == getattr(old_obj, opts.pk.attname): if hasattr(self, 'original_object') and getattr(self.original_object, opts.pk.attname) == getattr(old_obj, opts.pk.attname):
return return
raise validators.ValidationError, _("%(optname)s with this %(fieldname)s already exists.") % {'optname':capfirst(opts.verbose_name), 'fieldname':f.verbose_name} raise validators.ValidationError, _("%(optname)s with this %(fieldname)s already exists.") % {'optname': capfirst(opts.verbose_name), 'fieldname': f.verbose_name}
class BoundField(object): class BoundField(object):
def __init__(self, field, field_mapping, original): def __init__(self, field, field_mapping, original):
@ -74,11 +73,10 @@ class BoundField(object):
def original_value(self): def original_value(self):
if self.original: if self.original:
return self.original.__dict__[self.field.column] return self.original.__dict__[self.field.column]
def __repr__(self): def __repr__(self):
return "BoundField:(%s, %s)" %( self.field.name, self.form_fields) return "BoundField:(%s, %s)" % (self.field.name, self.form_fields)
# A guide to Field parameters: # A guide to Field parameters:
# #
@ -96,7 +94,7 @@ class BoundField(object):
# getattr(obj, opts.pk.attname) # getattr(obj, opts.pk.attname)
class Field(object): class Field(object):
# Designates whether empty strings fundamentally are allowed at the # Designates whether empty strings fundamentally are allowed at the
# database level. # database level.
empty_strings_allowed = True empty_strings_allowed = True
@ -247,7 +245,7 @@ class Field(object):
params['ul_class'] = get_ul_class(self.radio_admin) params['ul_class'] = get_ul_class(self.radio_admin)
else: else:
field_objs = [formfields.SelectField] field_objs = [formfields.SelectField]
params['choices'] = self.get_choices_default() params['choices'] = self.get_choices_default()
else: else:
field_objs = self.get_manipulator_field_objs() field_objs = self.get_manipulator_field_objs()
@ -310,12 +308,11 @@ class Field(object):
def get_choices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH): def get_choices(self, include_blank=True, blank_choice=BLANK_CHOICE_DASH):
"Returns a list of tuples used as SelectField choices for this field." "Returns a list of tuples used as SelectField choices for this field."
first_choice = include_blank and blank_choice or [] first_choice = include_blank and blank_choice or []
if self.choices: if self.choices:
return first_choice + list(self.choices) return first_choice + list(self.choices)
rel_obj = self.rel.to rel_obj = self.rel.to
return first_choice + [(getattr(x, rel_obj.pk.attname), str(x)) return first_choice + [(getattr(x, rel_obj.pk.attname), str(x))
for x in rel_obj.get_model_module().get_list(**self.rel.limit_choices_to)] for x in rel_obj.get_model_module().get_list(**self.rel.limit_choices_to)]
def get_choices_default(self): def get_choices_default(self):
@ -326,27 +323,27 @@ class Field(object):
def _get_val_from_obj(self, obj): def _get_val_from_obj(self, obj):
if obj: if obj:
return getattr(obj, self.attname) return getattr(obj, self.attname)
else: else:
return self.get_default() return self.get_default()
def flatten_data(self, follow, obj = None): def flatten_data(self, follow, obj = None):
""" """
Returns a dictionary mapping the field's manipulator field names to its Returns a dictionary mapping the field's manipulator field names to its
"flattened" string values for the admin view. Obj is the instance to extract the "flattened" string values for the admin view. obj is the instance to
values from. extract the values from.
""" """
return { self.attname : self._get_val_from_obj(obj)} return {self.attname: self._get_val_from_obj(obj)}
def get_follow(self, override=None): def get_follow(self, override=None):
if override != None: if override != None:
return override return override
else: else:
return self.editable return self.editable
def bind(self, fieldmapping, original, bound_field_class=BoundField): def bind(self, fieldmapping, original, bound_field_class=BoundField):
return bound_field_class(self, fieldmapping, original) return bound_field_class(self, fieldmapping, original)
class AutoField(Field): class AutoField(Field):
empty_strings_allowed = False empty_strings_allowed = False
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -386,7 +383,7 @@ class DateField(Field):
empty_strings_allowed = False empty_strings_allowed = False
def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs): def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs):
self.auto_now, self.auto_now_add = auto_now, auto_now_add self.auto_now, self.auto_now_add = auto_now, auto_now_add
#HACKs : auto_now_add/auto_now should be done as a default or a pre_save... #HACKs : auto_now_add/auto_now should be done as a default or a pre_save...
if auto_now or auto_now_add: if auto_now or auto_now_add:
kwargs['editable'] = False kwargs['editable'] = False
kwargs['blank'] = True kwargs['blank'] = True
@ -454,7 +451,7 @@ class DateTimeField(DateField):
return self.get_default() return self.get_default()
def flatten_data(self,follow, obj = None): def flatten_data(self,follow, obj = None):
val = self._get_val_from_obj(obj) val = self._get_val_from_obj(obj)
date_field, time_field = self.get_manipulator_field_names('') date_field, time_field = self.get_manipulator_field_names('')
return {date_field: (val is not None and val.strftime("%Y-%m-%d") or ''), return {date_field: (val is not None and val.strftime("%Y-%m-%d") or ''),
time_field: (val is not None and val.strftime("%H:%M:%S") or '')} time_field: (val is not None and val.strftime("%H:%M:%S") or '')}
@ -658,8 +655,8 @@ class TimeField(Field):
return [formfields.TimeField] return [formfields.TimeField]
def flatten_data(self,follow, obj = None): def flatten_data(self,follow, obj = None):
val = self._get_val_from_obj(obj) val = self._get_val_from_obj(obj)
return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')} return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')}
class URLField(Field): class URLField(Field):
def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs): def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs):
@ -784,14 +781,14 @@ class ManyToManyField(Field):
} }
def flatten_data(self, follow, obj = None): def flatten_data(self, follow, obj = None):
new_data = {} new_data = {}
if obj: if obj:
get_list_func = getattr(obj, 'get_%s_list' % self.rel.singular) get_list_func = getattr(obj, 'get_%s_list' % self.rel.singular)
instance_ids = [getattr(instance, self.rel.to.pk.attname) for instance in get_list_func()] instance_ids = [getattr(instance, self.rel.to.pk.attname) for instance in get_list_func()]
if self.rel.raw_id_admin: if self.rel.raw_id_admin:
new_data[self.name] = ",".join([str(id) for id in instance_ids]) new_data[self.name] = ",".join([str(id) for id in instance_ids])
else: else:
new_data[self.name] = instance_ids new_data[self.name] = instance_ids
else: else:
# In required many-to-many fields with only one available choice, # In required many-to-many fields with only one available choice,
# select that one available choice. # select that one available choice.
@ -869,17 +866,15 @@ class OneToOne(ManyToOne):
class BoundFieldLine(object): class BoundFieldLine(object):
def __init__(self, field_line, field_mapping, original, bound_field_class=BoundField): def __init__(self, field_line, field_mapping, original, bound_field_class=BoundField):
self.bound_fields = [field.bind(field_mapping, original, bound_field_class) self.bound_fields = [field.bind(field_mapping, original, bound_field_class) for field in field_line]
for field in field_line]
def __iter__(self): def __iter__(self):
for bound_field in self.bound_fields: for bound_field in self.bound_fields:
yield bound_field yield bound_field
def __len__(self): def __len__(self):
return len(self.bound_fields) return len(self.bound_fields)
class FieldLine(object): class FieldLine(object):
def __init__(self, field_locator_func, linespec): def __init__(self, field_locator_func, linespec):
if isinstance(linespec, basestring): if isinstance(linespec, basestring):
@ -893,30 +888,29 @@ class FieldLine(object):
def __iter__(self): def __iter__(self):
for field in self.fields: for field in self.fields:
yield field yield field
def __len__(self): def __len__(self):
return len(self.fields) return len(self.fields)
class BoundFieldSet(object): class BoundFieldSet(object):
def __init__(self, field_set, field_mapping, original, bound_field_line_class=BoundFieldLine): def __init__(self, field_set, field_mapping, original, bound_field_line_class=BoundFieldLine):
self.name = field_set.name self.name = field_set.name
self.classes = field_set.classes self.classes = field_set.classes
self.bound_field_lines = [ field_line.bind(field_mapping,original, bound_field_line_class) self.bound_field_lines = [field_line.bind(field_mapping,original, bound_field_line_class) for field_line in field_set]
for field_line in field_set]
def __iter__(self): def __iter__(self):
for bound_field_line in self.bound_field_lines: for bound_field_line in self.bound_field_lines:
yield bound_field_line yield bound_field_line
def __len__(self): def __len__(self):
return len(self.bound_field_lines) return len(self.bound_field_lines)
class FieldSet(object): class FieldSet(object):
def __init__(self, name, classes, field_locator_func, line_specs): def __init__(self, name, classes, field_locator_func, line_specs):
self.name = name self.name = name
self.field_lines = [FieldLine(field_locator_func, line_spec) for line_spec in line_specs] self.field_lines = [FieldLine(field_locator_func, line_spec) for line_spec in line_specs]
self.classes = classes self.classes = classes
def __repr__(self): def __repr__(self):
return "FieldSet:(%s,%s)" % (self.name, self.field_lines) return "FieldSet:(%s,%s)" % (self.name, self.field_lines)
@ -942,22 +936,19 @@ class Admin:
self.search_fields = search_fields or [] self.search_fields = search_fields or []
self.save_on_top = save_on_top self.save_on_top = save_on_top
self.list_select_related = list_select_related self.list_select_related = list_select_related
def get_field_sets(self, opts): def get_field_sets(self, opts):
if self.fields is None: if self.fields is None:
field_struct = ((None, { field_struct = ((None, {
'fields': [f.name for f in opts.fields + opts.many_to_many if f.editable and not isinstance(f, AutoField)] 'fields': [f.name for f in opts.fields + opts.many_to_many if f.editable and not isinstance(f, AutoField)]
}),) }),)
else: else:
field_struct = self.fields field_struct = self.fields
new_fieldset_list = [] new_fieldset_list = []
for fieldset in field_struct: for fieldset in field_struct:
name = fieldset[0] name = fieldset[0]
fs_options = fieldset[1] fs_options = fieldset[1]
classes = fs_options.get('classes', () ) classes = fs_options.get('classes', ())
line_specs = fs_options['fields'] line_specs = fs_options['fields']
new_fieldset_list.append(FieldSet(name, classes, opts.get_field, line_specs) ) new_fieldset_list.append(FieldSet(name, classes, opts.get_field, line_specs))
return new_fieldset_list return new_fieldset_list