mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Refs #24215 -- Fixed Python 3.5 compatiblity for unhandled lazy ops error.
This commit is contained in:
		| @@ -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. | ||||
|   | ||||
| @@ -244,11 +244,9 @@ 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 | ||||
|             # operation is annotated with the field in | ||||
|             # apps.register.Apps.lazy_model_operation(). | ||||
|             return getattr(operation, 'field', None) | ||||
|  | ||||
|         def extract_field_names(operations): | ||||
|             return (str(field) for field in map(extract_field, operations) if field) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user