mirror of
https://github.com/django/django.git
synced 2025-07-06 10:49:17 +00:00
Fixes for follow and manipulator stuff. And a fix for manipulator_save. Cheers bitprophet.
git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@920 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
baa196bc38
commit
33edae21df
@ -223,7 +223,6 @@ 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)
|
||||||
|
|
||||||
@ -1659,7 +1658,7 @@ def manipulator_save(opts, klass, add, change, self, new_data):
|
|||||||
# ('1', {'id': ['941'], 'choice': ['This is the second choice']}),
|
# ('1', {'id': ['941'], 'choice': ['This is the second choice']}),
|
||||||
# ('2', {'id': [''], 'choice': ['']})]
|
# ('2', {'id': [''], 'choice': ['']})]
|
||||||
child_follow = self.follow.get(related.name, None)
|
child_follow = self.follow.get(related.name, None)
|
||||||
|
|
||||||
if child_follow:
|
if child_follow:
|
||||||
obj_list = expanded_data[related.var_name].items()
|
obj_list = expanded_data[related.var_name].items()
|
||||||
obj_list.sort(lambda x, y: cmp(int(x[0]), int(y[0])))
|
obj_list.sort(lambda x, y: cmp(int(x[0]), int(y[0])))
|
||||||
@ -1707,8 +1706,7 @@ def manipulator_save(opts, klass, add, change, self, new_data):
|
|||||||
param = f.get_default()
|
param = f.get_default()
|
||||||
else:
|
else:
|
||||||
param = f.get_manipulator_new_data(rel_new_data, rel=True)
|
param = f.get_manipulator_new_data(rel_new_data, rel=True)
|
||||||
|
if param != None:
|
||||||
if param:
|
|
||||||
params[f.column] = param
|
params[f.column] = param
|
||||||
|
|
||||||
|
|
||||||
@ -1741,14 +1739,14 @@ def manipulator_save(opts, klass, add, change, self, new_data):
|
|||||||
else:
|
else:
|
||||||
for f in related.opts.fields:
|
for f in related.opts.fields:
|
||||||
if not f.primary_key and f != related.field and str(getattr(old_rel_obj, f.column)) != str(getattr(new_rel_obj, f.column)):
|
if not f.primary_key and f != related.field and str(getattr(old_rel_obj, f.column)) != str(getattr(new_rel_obj, f.column)):
|
||||||
self.fields_changed.append('%s for %s "%r"' % (f.verbose_name, rel_opts.verbose_name, new_rel_obj))
|
self.fields_changed.append('%s for %s "%r"' % (f.verbose_name, related.opts.verbose_name, new_rel_obj))
|
||||||
|
|
||||||
# Save many-to-many objects.
|
# Save many-to-many objects.
|
||||||
for f in related.opts.many_to_many:
|
for f in related.opts.many_to_many:
|
||||||
if child_follow.get(f.name, None) and not f.rel.edit_inline:
|
if child_follow.get(f.name, None) and not f.rel.edit_inline:
|
||||||
was_changed = getattr(new_rel_obj, 'set_%s' % f.name)(rel_new_data[f.name])
|
was_changed = getattr(new_rel_obj, 'set_%s' % f.name)(rel_new_data[f.name])
|
||||||
if change and was_changed:
|
if change and was_changed:
|
||||||
self.fields_changed.append('%s for %s "%s"' % (f.verbose_name, rel_opts.verbose_name, new_rel_obj))
|
self.fields_changed.append('%s for %s "%s"' % (f.verbose_name, related.opts.verbose_name, new_rel_obj))
|
||||||
|
|
||||||
# If, in the change stage, all of the core fields were blank and
|
# If, in the change stage, all of the core fields were blank and
|
||||||
# the primary key (ID) was provided, delete the item.
|
# the primary key (ID) was provided, delete the item.
|
||||||
|
@ -292,7 +292,7 @@ class Field(object):
|
|||||||
return { self.get_db_column(): self._get_val_from_obj(obj)}
|
return { self.get_db_column(): self._get_val_from_obj(obj)}
|
||||||
|
|
||||||
def get_follow(self, override=None):
|
def get_follow(self, override=None):
|
||||||
if override:
|
if override != None:
|
||||||
return override
|
return override
|
||||||
else:
|
else:
|
||||||
return self.editable
|
return self.editable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user