Login

Tag "form_field"

Snippet List

Strict Boolean Form Field

A form field for a Boolean that forces the user to make a choice from a list of choices. **Use Case** You have a Yes/No question the user must answer, but they may answer it yes or no. You don't want to supply a default because your need to force the user to actively select their answer. If they do not select an answer, the field should raise a validation error, like "This field is required". Normal BooleanField logic is based on a "checkbox", which, when "required" is required to be checked. This logic assumes that an empty value is the same as False -- in fact, there is no way for validators to distinguish between the empty value and False. Based on excellent suggestion from Peter DeGlopper: https://stackoverflow.com/a/56677670/1993525

  • form_field
Read More

UKPhoneNumberField GB v3 (improved)

Validates and cleans UK telephone numbers. Number length is checked, and numbers are cleaned into a common format. For example, "+44 (0)1234 567890" will be stored as "01234 567890". Can reject premium numbers (0912 312 3123) or service numbers (1471, 118 118) with UKPhoneNumberField(reject=('premium', 'service')) Can reject multiple number types so you can tune the form input to accept only landline or only mobile, or whatever combination you want. Corrects the errors found in http://djangosnippets.org/snippets/1207/ and adds extra functionality and detail to the code found at http://djangosnippets.org/snippets/2809/ In particular, this version rejects individual invalid area codes and caters for area codes with mixed-length numbering in fine-grained detail. **Uses info from:** [here](http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_UK_Telephone_Numbers)

  • form
  • field
  • uk
  • localflavor
  • form_field
  • model_field
  • telephone
  • gb
  • area-code
Read More

UKPhoneNumberField GB v2

Validates and cleans UK telephone numbers. Number length is checked, and numbers are cleaned into a common format. For example, "+44 (0)1234 567890" will be stored as "01234 567890" Can reject premium numbers (0912 312 3123) or service numbers (1471, 118 118) with UKPhoneNumberField(reject=('premium', 'service')) Corrects the errors found in http://djangosnippets.org/snippets/1207/

  • form
  • field
  • uk
  • localflavor
  • form_field
  • model_field
  • telephone
  • gb
  • area-code
Read More

7 snippets posted so far.