88from django .core import validators
99from django .utils .translation import gettext_lazy as _
1010
11+ from .core import CARD_TYPES
1112from .core import get_credit_card_issuer
1213from .utils import get_month_choices
1314from .utils import get_year_choices
@@ -34,16 +35,17 @@ def to_python(self, value):
3435 value = re .sub (r"[\s-]+" , "" , value )
3536 return super ().to_python (value )
3637
37- def validate (self , value ):
38- card_type , issuer_name = get_credit_card_issuer (value )
38+ def validate (self , value ) -> None :
39+ card_type , _issuer_name = get_credit_card_issuer (value )
3940 if value in validators .EMPTY_VALUES and self .required :
4041 raise forms .ValidationError (self .error_messages ["required" ])
4142 if value and not self .cart_number_checksum_validation (self , value ):
4243 raise forms .ValidationError (self .error_messages ["invalid" ])
4344 if value and self .valid_types is not None and card_type not in self .valid_types :
44- valid_types = map (issuer_name , self .valid_types )
45+ card_type_names = {ct : name for _ , ct , name in CARD_TYPES }
46+ valid_type_names = [card_type_names .get (t , t ) for t in self .valid_types ]
4547 error_message = self .error_messages ["invalid_type" ] % {
46- "valid_types" : ", " .join (valid_types )
48+ "valid_types" : ", " .join (valid_type_names )
4749 }
4850 raise forms .ValidationError (error_message )
4951
0 commit comments