Commits

Alexey Luchko committed eb52224

orm.py: fix RuntimeError: dictionary changed size during iteration

Comments (0)

Files changed (1)

         "Evaluates the given code in the context of the migration file."
         
         # Drag in the migration module's locals (hopefully including models.py)
-        fake_locals = dict(inspect.getmodule(self.cls).__dict__)
-        
-        # Remove all models from that (i.e. from modern models.py), to stop pollution
-        for key, value in fake_locals.items():
-            if isinstance(value, type) and issubclass(value, models.Model) and hasattr(value, "_meta"):
-                del fake_locals[key]
+        # excluding all models from that (i.e. from modern models.py), to stop pollution
+        fake_locals = dict(
+            (key, value)
+            for key, value in inspect.getmodule(self.cls).__dict__.items()
+            if not (
+                isinstance(value, type)
+                and issubclass(value, models.Model)
+                and hasattr(value, "_meta")
+            )
+        )
         
         # We add our models into the locals for the eval
         fake_locals.update(dict([
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.