diff options
author | Tim Graham <timograham@gmail.com> | 2015-09-16 09:10:59 -0400 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2015-09-17 09:56:41 -0400 |
commit | 12fd88d2a4b158cbb1bf4a66470714aeb85de47b (patch) | |
tree | e07f8fb64fcc2a1318fb165525302d01d3949d00 | |
parent | da5747f8e460ea2a2d16f124463b3975ccfc0992 (diff) | |
download | django-24215.tar.gz |
Refs #24215 -- Fixed Python 3.5 compatiblity for unhandled lazy ops error.24215
-rw-r--r-- | django/apps/registry.py | 4 | ||||
-rw-r--r-- | django/db/migrations/state.py | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/django/apps/registry.py b/django/apps/registry.py index 46c10ef4fb..3484d87aee 100644 --- a/django/apps/registry.py +++ b/django/apps/registry.py @@ -381,6 +381,10 @@ class Apps(object): def function(model): next_function = partial(supplied_fn, model) + # Annotate the function with its field for retrieval in + # migrations.state.StateApps. + if getattr(supplied_fn, 'keywords', None): + next_function.field = supplied_fn.keywords.get('field') self.lazy_model_operation(next_function, *more_models) # If the model is already loaded, pass it to the function immediately. diff --git a/django/db/migrations/state.py b/django/db/migrations/state.py index 3613ae2a4d..0defa7018e 100644 --- a/django/db/migrations/state.py +++ b/django/db/migrations/state.py @@ -244,11 +244,7 @@ class StateApps(Apps): has a keyword argument called 'field'. """ def extract_field(operation): - # Expect a functools.partial() with a kwarg called 'field' applied. - try: - return operation.func.keywords['field'] - except (AttributeError, KeyError): - return None + return getattr(operation, 'field', None) def extract_field_names(operations): return (str(field) for field in map(extract_field, operations) if field) |