mirror of
https://github.com/django/django.git
synced 2025-10-25 22:56:12 +00:00
Removed oldforms, validators, and related code:
* Removed `Manipulator`, `AutomaticManipulator`, and related classes.
* Removed oldforms specific bits from model fields:
* Removed `validator_list` and `core` arguments from constructors.
* Removed the methods:
* `get_manipulator_field_names`
* `get_manipulator_field_objs`
* `get_manipulator_fields`
* `get_manipulator_new_data`
* `prepare_field_objs_and_params`
* `get_follow`
* Renamed `flatten_data` method to `value_to_string` for better alignment with its use by the serialization framework, which was the only remaining code using `flatten_data`.
* Removed oldforms methods from `django.db.models.Options` class: `get_followed_related_objects`, `get_data_holders`, `get_follow`, and `has_field_type`.
* Removed oldforms-admin specific options from `django.db.models.fields.related` classes: `num_in_admin`, `min_num_in_admin`, `max_num_in_admin`, `num_extra_on_change`, and `edit_inline`.
* Serialization framework
* `Serializer.get_string_value` now calls the model fields' renamed `value_to_string` methods.
* Removed a special-casing of `models.DateTimeField` in `core.serializers.base.Serializer.get_string_value` that's handled by `django.db.models.fields.DateTimeField.value_to_string`.
* Removed `django.core.validators`:
* Moved `ValidationError` exception to `django.core.exceptions`.
* For the couple places that were using validators, brought over the necessary code to maintain the same functionality.
* Introduced a SlugField form field for validation and to compliment the SlugField model field (refs #8040).
* Removed an oldforms-style model creation hack (refs #2160).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8616 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -396,28 +396,6 @@ class Options(object):
|
||||
self._related_many_to_many_cache = cache
|
||||
return cache
|
||||
|
||||
def get_followed_related_objects(self, follow=None):
|
||||
if follow == None:
|
||||
follow = self.get_follow()
|
||||
return [f for f in self.get_all_related_objects() if follow.get(f.name, None)]
|
||||
|
||||
def get_data_holders(self, follow=None):
|
||||
if follow == None:
|
||||
follow = self.get_follow()
|
||||
return [f for f in self.fields + self.many_to_many + self.get_all_related_objects() if follow.get(f.name, None)]
|
||||
|
||||
def get_follow(self, override=None):
|
||||
follow = {}
|
||||
for f in self.fields + self.many_to_many + self.get_all_related_objects():
|
||||
if override and f.name in override:
|
||||
child_override = override[f.name]
|
||||
else:
|
||||
child_override = None
|
||||
fol = f.get_follow(child_override)
|
||||
if fol != None:
|
||||
follow[f.name] = fol
|
||||
return follow
|
||||
|
||||
def get_base_chain(self, model):
|
||||
"""
|
||||
Returns a list of parent classes leading to 'model' (order from closet
|
||||
@@ -459,28 +437,3 @@ class Options(object):
|
||||
# objects.append(opts)
|
||||
self._ordered_objects = objects
|
||||
return self._ordered_objects
|
||||
|
||||
def has_field_type(self, field_type, follow=None):
|
||||
"""
|
||||
Returns True if this object's admin form has at least one of the given
|
||||
field_type (e.g. FileField).
|
||||
"""
|
||||
# TODO: follow
|
||||
if not hasattr(self, '_field_types'):
|
||||
self._field_types = {}
|
||||
if field_type not in self._field_types:
|
||||
try:
|
||||
# First check self.fields.
|
||||
for f in self.fields:
|
||||
if isinstance(f, field_type):
|
||||
raise StopIteration
|
||||
# Failing that, check related fields.
|
||||
for related in self.get_followed_related_objects(follow):
|
||||
for f in related.opts.fields:
|
||||
if isinstance(f, field_type):
|
||||
raise StopIteration
|
||||
except StopIteration:
|
||||
self._field_types[field_type] = True
|
||||
else:
|
||||
self._field_types[field_type] = False
|
||||
return self._field_types[field_type]
|
||||
|
||||
Reference in New Issue
Block a user