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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user