python - Convert all CharField Form Field inputs to lowercase in Django forms -
i using django form user signup, user able come in coupon code. want characters entered in coupon code field converted lowercase. i've tried using .lower() in save method, in custom cleaning method, , in custom validator, having no luck approaches. below code.
class stripesubscriptionsignupform(forms.form): coupon = forms.charfield(max_length=30, required=false, validators=[validate_coupon], label=mark_safe("<p class='signup_label'>promo code</p>") def save(self, user): try: customer, created = customer.get_or_create(user) customer.update_card(self.cleaned_data["stripe_token"]) customer.subscribe(self.cleaned_data["plan"], self.cleaned_data["coupon"].lower()) except stripe.stripeerror e: # handle error here raise e as mentioned above, i've tried cleaning method, doesn't work either:
def clean_coupon(self): homecoming self.cleaned_data['coupon'].lower()
the solution create custom form field, allows override to_python method, in raw values form fields can modified.
class couponfield(forms.charfield): def to_python(self, value): homecoming value.lower() class stripesubscriptionsignupform(forms.form): coupon = couponfield(max_length=30, required=false, validators=[validate_coupon], label=mark_safe("<p class='signup_label'>promo code</p>") ) python django python-2.7
No comments:
Post a Comment