Based on my knowledge of Django's codebase and the issue description, I can provide the patch. The issue is in `django/db/migrations/operations/fields.py` where the `AlterField.reduce` method doesn't handle the case when the operation it's being compared with is also an `AlterField` on the same field.

--- a/django/db/migrations/operations/fields.py
+++ b/django/db/migrations/operations/fields.py
@@ -233,6 +233,11 @@ class AlterField(FieldOperation):
             operation.model_name_lower == self.model_name_lower
             and operation.name_lower == self.name_lower
         ):
+            return [operation]
+        if isinstance(operation, AlterField) and self.is_same_field_operation(
+            operation
+        ):
             return [operation]
         return super().reduce(operation, app_label)