Ticket #8653: hashfix.diff

File hashfix.diff, 1.1 KB (added by bthomas, 7 years ago)

Fix security_hash for all field types

  • django/contrib/formtools/utils.py

     
    1515        order, pickles the result with the SECRET_KEY setting, then takes an md5
    1616        hash of that.
    1717        """
    18         # Ensure that the hash does not change when a BooleanField's bound
    19         # data is a string `False' or a boolean False.
    20         # Rather than re-coding this special behaviour here, we
    21         # create a dummy BooleanField and call its clean method to get a
    22         # boolean True or False verdict that is consistent with
    23         # BooleanField.clean()
    24         dummy_bool = BooleanField(required=False)
    25         def _cleaned_data(bf):
    26             if isinstance(bf.field, BooleanField):
    27                 return dummy_bool.clean(bf.data)
    28             return bf.data
    2918       
    30         data = [(bf.name, _cleaned_data(bf) or '') for bf in form]
     19        data = [(bf.name, bf.field.clean(bf.data) or '') for bf in form]
    3120        data.extend(args)
    3221        data.append(settings.SECRET_KEY)
    3322       
Back to Top