1
0
mirror of https://github.com/django/django.git synced 2025-10-26 15:16:09 +00:00

[py3] Fixed access to dict keys/values/items.

This commit is contained in:
Aymeric Augustin
2012-07-20 21:14:27 +02:00
parent fa3f0aa021
commit ee191715ea
64 changed files with 187 additions and 155 deletions

View File

@@ -4,6 +4,7 @@ from operator import attrgetter
from django.db import connections, transaction, IntegrityError
from django.db.models import signals, sql
from django.utils.datastructures import SortedDict
from django.utils import six
class ProtectedError(IntegrityError):
@@ -157,7 +158,7 @@ class Collector(object):
# Recursively collect concrete model's parent models, but not their
# related objects. These will be found by meta.get_all_related_objects()
concrete_model = model._meta.concrete_model
for ptr in concrete_model._meta.parents.itervalues():
for ptr in six.itervalues(concrete_model._meta.parents):
if ptr:
parent_objs = [getattr(obj, ptr.name) for obj in new_objs]
self.collect(parent_objs, source=model,
@@ -199,14 +200,14 @@ class Collector(object):
)
def instances_with_model(self):
for model, instances in self.data.iteritems():
for model, instances in six.iteritems(self.data):
for obj in instances:
yield model, obj
def sort(self):
sorted_models = []
concrete_models = set()
models = self.data.keys()
models = list(six.iterkeys(self.data))
while len(sorted_models) < len(models):
found = False
for model in models:
@@ -241,24 +242,24 @@ class Collector(object):
)
# update fields
for model, instances_for_fieldvalues in self.field_updates.iteritems():
for model, instances_for_fieldvalues in six.iteritems(self.field_updates):
query = sql.UpdateQuery(model)
for (field, value), instances in instances_for_fieldvalues.iteritems():
for (field, value), instances in six.iteritems(instances_for_fieldvalues):
query.update_batch([obj.pk for obj in instances],
{field.name: value}, self.using)
# reverse instance collections
for instances in self.data.itervalues():
for instances in six.itervalues(self.data):
instances.reverse()
# delete batches
for model, batches in self.batches.iteritems():
for model, batches in six.iteritems(self.batches):
query = sql.DeleteQuery(model)
for field, instances in batches.iteritems():
for field, instances in six.iteritems(batches):
query.delete_batch([obj.pk for obj in instances], self.using, field)
# delete instances
for model, instances in self.data.iteritems():
for model, instances in six.iteritems(self.data):
query = sql.DeleteQuery(model)
pk_list = [obj.pk for obj in instances]
query.delete_batch(pk_list, self.using)
@@ -271,10 +272,10 @@ class Collector(object):
)
# update collected instances
for model, instances_for_fieldvalues in self.field_updates.iteritems():
for (field, value), instances in instances_for_fieldvalues.iteritems():
for model, instances_for_fieldvalues in six.iteritems(self.field_updates):
for (field, value), instances in six.iteritems(instances_for_fieldvalues):
for obj in instances:
setattr(obj, field.attname, value)
for model, instances in self.data.iteritems():
for model, instances in six.iteritems(self.data):
for instance in instances:
setattr(instance, model._meta.pk.attname, None)