Index: django/db/models/fields/__init__.py
===================================================================
--- django/db/models/fields/__init__.py	(revision 17914)
+++ django/db/models/fields/__init__.py	(working copy)
@@ -474,7 +474,7 @@
             defaults['coerce'] = self.to_python
             if self.null:
                 defaults['empty_value'] = None
-            form_class = forms.TypedChoiceField
+            form_class = kwargs.pop("form_class_for_choices", forms.TypedChoiceField)
             # Many of the subclass-specific formfield arguments (min_value,
             # max_value) don't apply for choice fields, so be sure to only pass
             # the values that TypedChoiceField will understand.
