| 3271 | | # USZipCodeField ############################################################## |
|---|
| 3272 | | |
|---|
| 3273 | | USZipCodeField validates that the data is either a five-digit U.S. zip code or |
|---|
| 3274 | | a zip+4. |
|---|
| 3275 | | >>> from django.contrib.localflavor.usa.forms import USZipCodeField |
|---|
| 3276 | | >>> f = USZipCodeField() |
|---|
| 3277 | | >>> f.clean('60606') |
|---|
| 3278 | | u'60606' |
|---|
| 3279 | | >>> f.clean(60606) |
|---|
| 3280 | | u'60606' |
|---|
| 3281 | | >>> f.clean('04000') |
|---|
| 3282 | | u'04000' |
|---|
| 3283 | | >>> f.clean('4000') |
|---|
| 3284 | | Traceback (most recent call last): |
|---|
| 3285 | | ... |
|---|
| 3286 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3287 | | >>> f.clean('60606-1234') |
|---|
| 3288 | | u'60606-1234' |
|---|
| 3289 | | >>> f.clean('6060-1234') |
|---|
| 3290 | | Traceback (most recent call last): |
|---|
| 3291 | | ... |
|---|
| 3292 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3293 | | >>> f.clean('60606-') |
|---|
| 3294 | | Traceback (most recent call last): |
|---|
| 3295 | | ... |
|---|
| 3296 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3297 | | >>> f.clean(None) |
|---|
| 3298 | | Traceback (most recent call last): |
|---|
| 3299 | | ... |
|---|
| 3300 | | ValidationError: [u'This field is required.'] |
|---|
| 3301 | | >>> f.clean('') |
|---|
| 3302 | | Traceback (most recent call last): |
|---|
| 3303 | | ... |
|---|
| 3304 | | ValidationError: [u'This field is required.'] |
|---|
| 3305 | | |
|---|
| 3306 | | >>> f = USZipCodeField(required=False) |
|---|
| 3307 | | >>> f.clean('60606') |
|---|
| 3308 | | u'60606' |
|---|
| 3309 | | >>> f.clean(60606) |
|---|
| 3310 | | u'60606' |
|---|
| 3311 | | >>> f.clean('04000') |
|---|
| 3312 | | u'04000' |
|---|
| 3313 | | >>> f.clean('4000') |
|---|
| 3314 | | Traceback (most recent call last): |
|---|
| 3315 | | ... |
|---|
| 3316 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3317 | | >>> f.clean('60606-1234') |
|---|
| 3318 | | u'60606-1234' |
|---|
| 3319 | | >>> f.clean('6060-1234') |
|---|
| 3320 | | Traceback (most recent call last): |
|---|
| 3321 | | ... |
|---|
| 3322 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3323 | | >>> f.clean('60606-') |
|---|
| 3324 | | Traceback (most recent call last): |
|---|
| 3325 | | ... |
|---|
| 3326 | | ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.'] |
|---|
| 3327 | | >>> f.clean(None) |
|---|
| 3328 | | u'' |
|---|
| 3329 | | >>> f.clean('') |
|---|
| 3330 | | u'' |
|---|
| 3331 | | |
|---|
| 3332 | | # USPhoneNumberField ########################################################## |
|---|
| 3333 | | |
|---|
| 3334 | | USPhoneNumberField validates that the data is a valid U.S. phone number, |
|---|
| 3335 | | including the area code. It's normalized to XXX-XXX-XXXX format. |
|---|
| 3336 | | >>> from django.contrib.localflavor.usa.forms import USPhoneNumberField |
|---|
| 3337 | | >>> f = USPhoneNumberField() |
|---|
| 3338 | | >>> f.clean('312-555-1212') |
|---|
| 3339 | | u'312-555-1212' |
|---|
| 3340 | | >>> f.clean('3125551212') |
|---|
| 3341 | | u'312-555-1212' |
|---|
| 3342 | | >>> f.clean('312 555-1212') |
|---|
| 3343 | | u'312-555-1212' |
|---|
| 3344 | | >>> f.clean('(312) 555-1212') |
|---|
| 3345 | | u'312-555-1212' |
|---|
| 3346 | | >>> f.clean('312 555 1212') |
|---|
| 3347 | | u'312-555-1212' |
|---|
| 3348 | | >>> f.clean('312.555.1212') |
|---|
| 3349 | | u'312-555-1212' |
|---|
| 3350 | | >>> f.clean('312.555-1212') |
|---|
| 3351 | | u'312-555-1212' |
|---|
| 3352 | | >>> f.clean(' (312) 555.1212 ') |
|---|
| 3353 | | u'312-555-1212' |
|---|
| 3354 | | >>> f.clean('555-1212') |
|---|
| 3355 | | Traceback (most recent call last): |
|---|
| 3356 | | ... |
|---|
| 3357 | | ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.'] |
|---|
| 3358 | | >>> f.clean('312-55-1212') |
|---|
| 3359 | | Traceback (most recent call last): |
|---|
| 3360 | | ... |
|---|
| 3361 | | ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.'] |
|---|
| 3362 | | >>> f.clean(None) |
|---|
| 3363 | | Traceback (most recent call last): |
|---|
| 3364 | | ... |
|---|
| 3365 | | ValidationError: [u'This field is required.'] |
|---|
| 3366 | | >>> f.clean('') |
|---|
| 3367 | | Traceback (most recent call last): |
|---|
| 3368 | | ... |
|---|
| 3369 | | ValidationError: [u'This field is required.'] |
|---|
| 3370 | | |
|---|
| 3371 | | >>> f = USPhoneNumberField(required=False) |
|---|
| 3372 | | >>> f.clean('312-555-1212') |
|---|
| 3373 | | u'312-555-1212' |
|---|
| 3374 | | >>> f.clean('3125551212') |
|---|
| 3375 | | u'312-555-1212' |
|---|
| 3376 | | >>> f.clean('312 555-1212') |
|---|
| 3377 | | u'312-555-1212' |
|---|
| 3378 | | >>> f.clean('(312) 555-1212') |
|---|
| 3379 | | u'312-555-1212' |
|---|
| 3380 | | >>> f.clean('312 555 1212') |
|---|
| 3381 | | u'312-555-1212' |
|---|
| 3382 | | >>> f.clean('312.555.1212') |
|---|
| 3383 | | u'312-555-1212' |
|---|
| 3384 | | >>> f.clean('312.555-1212') |
|---|
| 3385 | | u'312-555-1212' |
|---|
| 3386 | | >>> f.clean(' (312) 555.1212 ') |
|---|
| 3387 | | u'312-555-1212' |
|---|
| 3388 | | >>> f.clean('555-1212') |
|---|
| 3389 | | Traceback (most recent call last): |
|---|
| 3390 | | ... |
|---|
| 3391 | | ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.'] |
|---|
| 3392 | | >>> f.clean('312-55-1212') |
|---|
| 3393 | | Traceback (most recent call last): |
|---|
| 3394 | | ... |
|---|
| 3395 | | ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.'] |
|---|
| 3396 | | >>> f.clean(None) |
|---|
| 3397 | | u'' |
|---|
| 3398 | | >>> f.clean('') |
|---|
| 3399 | | u'' |
|---|
| 3400 | | |
|---|
| 3401 | | # USStateField ################################################################ |
|---|
| 3402 | | |
|---|
| 3403 | | USStateField validates that the data is either an abbreviation or name of a |
|---|
| 3404 | | U.S. state. |
|---|
| 3405 | | >>> from django.contrib.localflavor.usa.forms import USStateField |
|---|
| 3406 | | >>> f = USStateField() |
|---|
| 3407 | | >>> f.clean('il') |
|---|
| 3408 | | u'IL' |
|---|
| 3409 | | >>> f.clean('IL') |
|---|
| 3410 | | u'IL' |
|---|
| 3411 | | >>> f.clean('illinois') |
|---|
| 3412 | | u'IL' |
|---|
| 3413 | | >>> f.clean(' illinois ') |
|---|
| 3414 | | u'IL' |
|---|
| 3415 | | >>> f.clean(60606) |
|---|
| 3416 | | Traceback (most recent call last): |
|---|
| 3417 | | ... |
|---|
| 3418 | | ValidationError: [u'Enter a U.S. state or territory.'] |
|---|
| 3419 | | >>> f.clean(None) |
|---|
| 3420 | | Traceback (most recent call last): |
|---|
| 3421 | | ... |
|---|
| 3422 | | ValidationError: [u'This field is required.'] |
|---|
| 3423 | | >>> f.clean('') |
|---|
| 3424 | | Traceback (most recent call last): |
|---|
| 3425 | | ... |
|---|
| 3426 | | ValidationError: [u'This field is required.'] |
|---|
| 3427 | | |
|---|
| 3428 | | >>> f = USStateField(required=False) |
|---|
| 3429 | | >>> f.clean('il') |
|---|
| 3430 | | u'IL' |
|---|
| 3431 | | >>> f.clean('IL') |
|---|
| 3432 | | u'IL' |
|---|
| 3433 | | >>> f.clean('illinois') |
|---|
| 3434 | | u'IL' |
|---|
| 3435 | | >>> f.clean(' illinois ') |
|---|
| 3436 | | u'IL' |
|---|
| 3437 | | >>> f.clean(60606) |
|---|
| 3438 | | Traceback (most recent call last): |
|---|
| 3439 | | ... |
|---|
| 3440 | | ValidationError: [u'Enter a U.S. state or territory.'] |
|---|
| 3441 | | >>> f.clean(None) |
|---|
| 3442 | | u'' |
|---|
| 3443 | | >>> f.clean('') |
|---|
| 3444 | | u'' |
|---|
| 3445 | | |
|---|
| 3446 | | # USStateSelect ############################################################### |
|---|
| 3447 | | |
|---|
| 3448 | | USStateSelect is a Select widget that uses a list of U.S. states/territories |
|---|
| 3449 | | as its choices. |
|---|
| 3450 | | >>> from django.contrib.localflavor.usa.forms import USStateSelect |
|---|
| 3451 | | >>> w = USStateSelect() |
|---|
| 3452 | | >>> print w.render('state', 'IL') |
|---|
| 3453 | | <select name="state"> |
|---|
| 3454 | | <option value="AL">Alabama</option> |
|---|
| 3455 | | <option value="AK">Alaska</option> |
|---|
| 3456 | | <option value="AS">American Samoa</option> |
|---|
| 3457 | | <option value="AZ">Arizona</option> |
|---|
| 3458 | | <option value="AR">Arkansas</option> |
|---|
| 3459 | | <option value="CA">California</option> |
|---|
| 3460 | | <option value="CO">Colorado</option> |
|---|
| 3461 | | <option value="CT">Connecticut</option> |
|---|
| 3462 | | <option value="DE">Deleware</option> |
|---|
| 3463 | | <option value="DC">District of Columbia</option> |
|---|
| 3464 | | <option value="FM">Federated States of Micronesia</option> |
|---|
| 3465 | | <option value="FL">Florida</option> |
|---|
| 3466 | | <option value="GA">Georgia</option> |
|---|
| 3467 | | <option value="GU">Guam</option> |
|---|
| 3468 | | <option value="HI">Hawaii</option> |
|---|
| 3469 | | <option value="ID">Idaho</option> |
|---|
| 3470 | | <option value="IL" selected="selected">Illinois</option> |
|---|
| 3471 | | <option value="IN">Indiana</option> |
|---|
| 3472 | | <option value="IA">Iowa</option> |
|---|
| 3473 | | <option value="KS">Kansas</option> |
|---|
| 3474 | | <option value="KY">Kentucky</option> |
|---|
| 3475 | | <option value="LA">Louisiana</option> |
|---|
| 3476 | | <option value="ME">Maine</option> |
|---|
| 3477 | | <option value="MH">Marshall Islands</option> |
|---|
| 3478 | | <option value="MD">Maryland</option> |
|---|
| 3479 | | <option value="MA">Massachusetts</option> |
|---|
| 3480 | | <option value="MI">Michigan</option> |
|---|
| 3481 | | <option value="MN">Minnesota</option> |
|---|
| 3482 | | <option value="MS">Mississippi</option> |
|---|
| 3483 | | <option value="MO">Missouri</option> |
|---|
| 3484 | | <option value="MT">Montana</option> |
|---|
| 3485 | | <option value="NE">Nebraska</option> |
|---|
| 3486 | | <option value="NV">Nevada</option> |
|---|
| 3487 | | <option value="NH">New Hampshire</option> |
|---|
| 3488 | | <option value="NJ">New Jersey</option> |
|---|
| 3489 | | <option value="NM">New Mexico</option> |
|---|
| 3490 | | <option value="NY">New York</option> |
|---|
| 3491 | | <option value="NC">North Carolina</option> |
|---|
| 3492 | | <option value="ND">North Dakota</option> |
|---|
| 3493 | | <option value="MP">Northern Mariana Islands</option> |
|---|
| 3494 | | <option value="OH">Ohio</option> |
|---|
| 3495 | | <option value="OK">Oklahoma</option> |
|---|
| 3496 | | <option value="OR">Oregon</option> |
|---|
| 3497 | | <option value="PW">Palau</option> |
|---|
| 3498 | | <option value="PA">Pennsylvania</option> |
|---|
| 3499 | | <option value="PR">Puerto Rico</option> |
|---|
| 3500 | | <option value="RI">Rhode Island</option> |
|---|
| 3501 | | <option value="SC">South Carolina</option> |
|---|
| 3502 | | <option value="SD">South Dakota</option> |
|---|
| 3503 | | <option value="TN">Tennessee</option> |
|---|
| 3504 | | <option value="TX">Texas</option> |
|---|
| 3505 | | <option value="UT">Utah</option> |
|---|
| 3506 | | <option value="VT">Vermont</option> |
|---|
| 3507 | | <option value="VI">Virgin Islands</option> |
|---|
| 3508 | | <option value="VA">Virginia</option> |
|---|
| 3509 | | <option value="WA">Washington</option> |
|---|
| 3510 | | <option value="WV">West Virginia</option> |
|---|
| 3511 | | <option value="WI">Wisconsin</option> |
|---|
| 3512 | | <option value="WY">Wyoming</option> |
|---|
| 3513 | | </select> |
|---|
| 3514 | | |
|---|
| 3515 | | # UKPostcodeField ############################################################# |
|---|
| 3516 | | |
|---|
| 3517 | | UKPostcodeField validates that the data is a valid UK postcode. |
|---|
| 3518 | | >>> from django.contrib.localflavor.uk.forms import UKPostcodeField |
|---|
| 3519 | | >>> f = UKPostcodeField() |
|---|
| 3520 | | >>> f.clean('BT32 4PX') |
|---|
| 3521 | | u'BT32 4PX' |
|---|
| 3522 | | >>> f.clean('GIR 0AA') |
|---|
| 3523 | | u'GIR 0AA' |
|---|
| 3524 | | >>> f.clean('BT324PX') |
|---|
| 3525 | | Traceback (most recent call last): |
|---|
| 3526 | | ... |
|---|
| 3527 | | ValidationError: [u'Enter a postcode. A space is required between the two postcode parts.'] |
|---|
| 3528 | | >>> f.clean('1NV 4L1D') |
|---|
| 3529 | | Traceback (most recent call last): |
|---|
| 3530 | | ... |
|---|
| 3531 | | ValidationError: [u'Enter a postcode. A space is required between the two postcode parts.'] |
|---|
| 3532 | | >>> f.clean(None) |
|---|
| 3533 | | Traceback (most recent call last): |
|---|
| 3534 | | ... |
|---|
| 3535 | | ValidationError: [u'This field is required.'] |
|---|
| 3536 | | >>> f.clean('') |
|---|
| 3537 | | Traceback (most recent call last): |
|---|
| 3538 | | ... |
|---|
| 3539 | | ValidationError: [u'This field is required.'] |
|---|
| 3540 | | |
|---|
| 3541 | | >>> f = UKPostcodeField(required=False) |
|---|
| 3542 | | >>> f.clean('BT32 4PX') |
|---|
| 3543 | | u'BT32 4PX' |
|---|
| 3544 | | >>> f.clean('GIR 0AA') |
|---|
| 3545 | | u'GIR 0AA' |
|---|
| 3546 | | >>> f.clean('1NV 4L1D') |
|---|
| 3547 | | Traceback (most recent call last): |
|---|
| 3548 | | ... |
|---|
| 3549 | | ValidationError: [u'Enter a postcode. A space is required between the two postcode parts.'] |
|---|
| 3550 | | >>> f.clean('BT324PX') |
|---|
| 3551 | | Traceback (most recent call last): |
|---|
| 3552 | | ... |
|---|
| 3553 | | ValidationError: [u'Enter a postcode. A space is required between the two postcode parts.'] |
|---|
| 3554 | | >>> f.clean(None) |
|---|
| 3555 | | u'' |
|---|
| 3556 | | >>> f.clean('') |
|---|
| 3557 | | u'' |
|---|
| 3558 | | |
|---|
| 3559 | | # FRZipCodeField ############################################################# |
|---|
| 3560 | | |
|---|
| 3561 | | FRZipCodeField validates that the data is a valid FR zipcode. |
|---|
| 3562 | | >>> from django.contrib.localflavor.fr.forms import FRZipCodeField |
|---|
| 3563 | | >>> f = FRZipCodeField() |
|---|
| 3564 | | >>> f.clean('75001') |
|---|
| 3565 | | u'75001' |
|---|
| 3566 | | >>> f.clean('93200') |
|---|
| 3567 | | u'93200' |
|---|
| 3568 | | >>> f.clean('2A200') |
|---|
| 3569 | | Traceback (most recent call last): |
|---|
| 3570 | | ... |
|---|
| 3571 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3572 | | >>> f.clean('980001') |
|---|
| 3573 | | Traceback (most recent call last): |
|---|
| 3574 | | ... |
|---|
| 3575 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3576 | | >>> f.clean(None) |
|---|
| 3577 | | Traceback (most recent call last): |
|---|
| 3578 | | ... |
|---|
| 3579 | | ValidationError: [u'This field is required.'] |
|---|
| 3580 | | >>> f.clean('') |
|---|
| 3581 | | Traceback (most recent call last): |
|---|
| 3582 | | ... |
|---|
| 3583 | | ValidationError: [u'This field is required.'] |
|---|
| 3584 | | |
|---|
| 3585 | | >>> f = FRZipCodeField(required=False) |
|---|
| 3586 | | >>> f.clean('75001') |
|---|
| 3587 | | u'75001' |
|---|
| 3588 | | >>> f.clean('93200') |
|---|
| 3589 | | u'93200' |
|---|
| 3590 | | >>> f.clean('2A200') |
|---|
| 3591 | | Traceback (most recent call last): |
|---|
| 3592 | | ... |
|---|
| 3593 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3594 | | >>> f.clean('980001') |
|---|
| 3595 | | Traceback (most recent call last): |
|---|
| 3596 | | ... |
|---|
| 3597 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3598 | | >>> f.clean(None) |
|---|
| 3599 | | u'' |
|---|
| 3600 | | >>> f.clean('') |
|---|
| 3601 | | u'' |
|---|
| 3602 | | |
|---|
| 3603 | | |
|---|
| 3604 | | # FRPhoneNumberField ########################################################## |
|---|
| 3605 | | |
|---|
| 3606 | | FRPhoneNumberField validates that the data is a valid french phone number. |
|---|
| 3607 | | It's normalized to 0X XX XX XX XX format. Dots are valid too. |
|---|
| 3608 | | >>> from django.contrib.localflavor.fr.forms import FRPhoneNumberField |
|---|
| 3609 | | >>> f = FRPhoneNumberField() |
|---|
| 3610 | | >>> f.clean('01 55 44 58 64') |
|---|
| 3611 | | u'01 55 44 58 64' |
|---|
| 3612 | | >>> f.clean('0155445864') |
|---|
| 3613 | | u'01 55 44 58 64' |
|---|
| 3614 | | >>> f.clean('01 5544 5864') |
|---|
| 3615 | | u'01 55 44 58 64' |
|---|
| 3616 | | >>> f.clean('01 55.44.58.64') |
|---|
| 3617 | | u'01 55 44 58 64' |
|---|
| 3618 | | >>> f.clean('01.55.44.58.64') |
|---|
| 3619 | | u'01 55 44 58 64' |
|---|
| 3620 | | >>> f.clean('01,55,44,58,64') |
|---|
| 3621 | | Traceback (most recent call last): |
|---|
| 3622 | | ... |
|---|
| 3623 | | ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] |
|---|
| 3624 | | >>> f.clean('555 015 544') |
|---|
| 3625 | | Traceback (most recent call last): |
|---|
| 3626 | | ... |
|---|
| 3627 | | ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] |
|---|
| 3628 | | >>> f.clean(None) |
|---|
| 3629 | | Traceback (most recent call last): |
|---|
| 3630 | | ... |
|---|
| 3631 | | ValidationError: [u'This field is required.'] |
|---|
| 3632 | | >>> f.clean('') |
|---|
| 3633 | | Traceback (most recent call last): |
|---|
| 3634 | | ... |
|---|
| 3635 | | ValidationError: [u'This field is required.'] |
|---|
| 3636 | | |
|---|
| 3637 | | >>> f = FRPhoneNumberField(required=False) |
|---|
| 3638 | | >>> f.clean('01 55 44 58 64') |
|---|
| 3639 | | u'01 55 44 58 64' |
|---|
| 3640 | | >>> f.clean('0155445864') |
|---|
| 3641 | | u'01 55 44 58 64' |
|---|
| 3642 | | >>> f.clean('01 5544 5864') |
|---|
| 3643 | | u'01 55 44 58 64' |
|---|
| 3644 | | >>> f.clean('01 55.44.58.64') |
|---|
| 3645 | | u'01 55 44 58 64' |
|---|
| 3646 | | >>> f.clean('01.55.44.58.64') |
|---|
| 3647 | | u'01 55 44 58 64' |
|---|
| 3648 | | >>> f.clean('01,55,44,58,64') |
|---|
| 3649 | | Traceback (most recent call last): |
|---|
| 3650 | | ... |
|---|
| 3651 | | ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] |
|---|
| 3652 | | >>> f.clean('555 015 544') |
|---|
| 3653 | | Traceback (most recent call last): |
|---|
| 3654 | | ... |
|---|
| 3655 | | ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] |
|---|
| 3656 | | >>> f.clean(None) |
|---|
| 3657 | | u'' |
|---|
| 3658 | | >>> f.clean('') |
|---|
| 3659 | | u'' |
|---|
| 3660 | | |
|---|
| 3661 | | # FRDepartmentSelect ############################################################### |
|---|
| 3662 | | |
|---|
| 3663 | | FRDepartmentSelect is a Select widget that uses a list of french departments |
|---|
| 3664 | | including DOM TOM |
|---|
| 3665 | | >>> from django.contrib.localflavor.fr.forms import FRDepartmentSelect |
|---|
| 3666 | | >>> w = FRDepartmentSelect() |
|---|
| 3667 | | >>> print w.render('dep', 'Paris') |
|---|
| 3668 | | <select name="dep"> |
|---|
| 3669 | | <option value="01">01 - Ain</option> |
|---|
| 3670 | | <option value="02">02 - Aisne</option> |
|---|
| 3671 | | <option value="03">03 - Allier</option> |
|---|
| 3672 | | <option value="04">04 - Alpes-de-Haute-Provence</option> |
|---|
| 3673 | | <option value="05">05 - Hautes-Alpes</option> |
|---|
| 3674 | | <option value="06">06 - Alpes-Maritimes</option> |
|---|
| 3675 | | <option value="07">07 - Ardeche</option> |
|---|
| 3676 | | <option value="08">08 - Ardennes</option> |
|---|
| 3677 | | <option value="09">09 - Ariege</option> |
|---|
| 3678 | | <option value="10">10 - Aube</option> |
|---|
| 3679 | | <option value="11">11 - Aude</option> |
|---|
| 3680 | | <option value="12">12 - Aveyron</option> |
|---|
| 3681 | | <option value="13">13 - Bouches-du-Rhone</option> |
|---|
| 3682 | | <option value="14">14 - Calvados</option> |
|---|
| 3683 | | <option value="15">15 - Cantal</option> |
|---|
| 3684 | | <option value="16">16 - Charente</option> |
|---|
| 3685 | | <option value="17">17 - Charente-Maritime</option> |
|---|
| 3686 | | <option value="18">18 - Cher</option> |
|---|
| 3687 | | <option value="19">19 - Correze</option> |
|---|
| 3688 | | <option value="21">21 - Cote-d'Or</option> |
|---|
| 3689 | | <option value="22">22 - Cotes-d'Armor</option> |
|---|
| 3690 | | <option value="23">23 - Creuse</option> |
|---|
| 3691 | | <option value="24">24 - Dordogne</option> |
|---|
| 3692 | | <option value="25">25 - Doubs</option> |
|---|
| 3693 | | <option value="26">26 - Drome</option> |
|---|
| 3694 | | <option value="27">27 - Eure</option> |
|---|
| 3695 | | <option value="28">28 - Eure-et-Loire</option> |
|---|
| 3696 | | <option value="29">29 - Finistere</option> |
|---|
| 3697 | | <option value="2A">2A - Corse-du-Sud</option> |
|---|
| 3698 | | <option value="2B">2B - Haute-Corse</option> |
|---|
| 3699 | | <option value="30">30 - Gard</option> |
|---|
| 3700 | | <option value="31">31 - Haute-Garonne</option> |
|---|
| 3701 | | <option value="32">32 - Gers</option> |
|---|
| 3702 | | <option value="33">33 - Gironde</option> |
|---|
| 3703 | | <option value="34">34 - Herault</option> |
|---|
| 3704 | | <option value="35">35 - Ille-et-Vilaine</option> |
|---|
| 3705 | | <option value="36">36 - Indre</option> |
|---|
| 3706 | | <option value="37">37 - Indre-et-Loire</option> |
|---|
| 3707 | | <option value="38">38 - Isere</option> |
|---|
| 3708 | | <option value="39">39 - Jura</option> |
|---|
| 3709 | | <option value="40">40 - Landes</option> |
|---|
| 3710 | | <option value="41">41 - Loir-et-Cher</option> |
|---|
| 3711 | | <option value="42">42 - Loire</option> |
|---|
| 3712 | | <option value="43">43 - Haute-Loire</option> |
|---|
| 3713 | | <option value="44">44 - Loire-Atlantique</option> |
|---|
| 3714 | | <option value="45">45 - Loiret</option> |
|---|
| 3715 | | <option value="46">46 - Lot</option> |
|---|
| 3716 | | <option value="47">47 - Lot-et-Garonne</option> |
|---|
| 3717 | | <option value="48">48 - Lozere</option> |
|---|
| 3718 | | <option value="49">49 - Maine-et-Loire</option> |
|---|
| 3719 | | <option value="50">50 - Manche</option> |
|---|
| 3720 | | <option value="51">51 - Marne</option> |
|---|
| 3721 | | <option value="52">52 - Haute-Marne</option> |
|---|
| 3722 | | <option value="53">53 - Mayenne</option> |
|---|
| 3723 | | <option value="54">54 - Meurthe-et-Moselle</option> |
|---|
| 3724 | | <option value="55">55 - Meuse</option> |
|---|
| 3725 | | <option value="56">56 - Morbihan</option> |
|---|
| 3726 | | <option value="57">57 - Moselle</option> |
|---|
| 3727 | | <option value="58">58 - Nievre</option> |
|---|
| 3728 | | <option value="59">59 - Nord</option> |
|---|
| 3729 | | <option value="60">60 - Oise</option> |
|---|
| 3730 | | <option value="61">61 - Orne</option> |
|---|
| 3731 | | <option value="62">62 - Pas-de-Calais</option> |
|---|
| 3732 | | <option value="63">63 - Puy-de-Dome</option> |
|---|
| 3733 | | <option value="64">64 - Pyrenees-Atlantiques</option> |
|---|
| 3734 | | <option value="65">65 - Hautes-Pyrenees</option> |
|---|
| 3735 | | <option value="66">66 - Pyrenees-Orientales</option> |
|---|
| 3736 | | <option value="67">67 - Bas-Rhin</option> |
|---|
| 3737 | | <option value="68">68 - Haut-Rhin</option> |
|---|
| 3738 | | <option value="69">69 - Rhone</option> |
|---|
| 3739 | | <option value="70">70 - Haute-Saone</option> |
|---|
| 3740 | | <option value="71">71 - Saone-et-Loire</option> |
|---|
| 3741 | | <option value="72">72 - Sarthe</option> |
|---|
| 3742 | | <option value="73">73 - Savoie</option> |
|---|
| 3743 | | <option value="74">74 - Haute-Savoie</option> |
|---|
| 3744 | | <option value="75">75 - Paris</option> |
|---|
| 3745 | | <option value="76">76 - Seine-Maritime</option> |
|---|
| 3746 | | <option value="77">77 - Seine-et-Marne</option> |
|---|
| 3747 | | <option value="78">78 - Yvelines</option> |
|---|
| 3748 | | <option value="79">79 - Deux-Sevres</option> |
|---|
| 3749 | | <option value="80">80 - Somme</option> |
|---|
| 3750 | | <option value="81">81 - Tarn</option> |
|---|
| 3751 | | <option value="82">82 - Tarn-et-Garonne</option> |
|---|
| 3752 | | <option value="83">83 - Var</option> |
|---|
| 3753 | | <option value="84">84 - Vaucluse</option> |
|---|
| 3754 | | <option value="85">85 - Vendee</option> |
|---|
| 3755 | | <option value="86">86 - Vienne</option> |
|---|
| 3756 | | <option value="87">87 - Haute-Vienne</option> |
|---|
| 3757 | | <option value="88">88 - Vosges</option> |
|---|
| 3758 | | <option value="89">89 - Yonne</option> |
|---|
| 3759 | | <option value="90">90 - Territoire de Belfort</option> |
|---|
| 3760 | | <option value="91">91 - Essonne</option> |
|---|
| 3761 | | <option value="92">92 - Hauts-de-Seine</option> |
|---|
| 3762 | | <option value="93">93 - Seine-Saint-Denis</option> |
|---|
| 3763 | | <option value="94">94 - Val-de-Marne</option> |
|---|
| 3764 | | <option value="95">95 - Val-d'Oise</option> |
|---|
| 3765 | | <option value="2A">2A - Corse du sud</option> |
|---|
| 3766 | | <option value="2B">2B - Haute Corse</option> |
|---|
| 3767 | | <option value="971">971 - Guadeloupe</option> |
|---|
| 3768 | | <option value="972">972 - Martinique</option> |
|---|
| 3769 | | <option value="973">973 - Guyane</option> |
|---|
| 3770 | | <option value="974">974 - La Reunion</option> |
|---|
| 3771 | | <option value="975">975 - Saint-Pierre-et-Miquelon</option> |
|---|
| 3772 | | <option value="976">976 - Mayotte</option> |
|---|
| 3773 | | <option value="984">984 - Terres Australes et Antarctiques</option> |
|---|
| 3774 | | <option value="986">986 - Wallis et Futuna</option> |
|---|
| 3775 | | <option value="987">987 - Polynesie Francaise</option> |
|---|
| 3776 | | <option value="988">988 - Nouvelle-Caledonie</option> |
|---|
| 3777 | | </select> |
|---|
| 3778 | | |
|---|
| 3779 | | # JPPostalCodeField ############################################################### |
|---|
| 3780 | | |
|---|
| 3781 | | A form field that validates its input is a Japanese postcode. |
|---|
| 3782 | | |
|---|
| 3783 | | Accepts 7 digits(with/out hyphen). |
|---|
| 3784 | | >>> from django.contrib.localflavor.jp.forms import JPPostalCodeField |
|---|
| 3785 | | >>> f = JPPostalCodeField() |
|---|
| 3786 | | >>> f.clean('251-0032') |
|---|
| 3787 | | u'2510032' |
|---|
| 3788 | | >>> f.clean('2510032') |
|---|
| 3789 | | u'2510032' |
|---|
| 3790 | | >>> f.clean('2510-032') |
|---|
| 3791 | | Traceback (most recent call last): |
|---|
| 3792 | | ... |
|---|
| 3793 | | ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.'] |
|---|
| 3794 | | >>> f.clean('251a0032') |
|---|
| 3795 | | Traceback (most recent call last): |
|---|
| 3796 | | ... |
|---|
| 3797 | | ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.'] |
|---|
| 3798 | | >>> f.clean('a51-0032') |
|---|
| 3799 | | Traceback (most recent call last): |
|---|
| 3800 | | ... |
|---|
| 3801 | | ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.'] |
|---|
| 3802 | | >>> f.clean('25100321') |
|---|
| 3803 | | Traceback (most recent call last): |
|---|
| 3804 | | ... |
|---|
| 3805 | | ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.'] |
|---|
| 3806 | | >>> f.clean('') |
|---|
| 3807 | | Traceback (most recent call last): |
|---|
| 3808 | | ... |
|---|
| 3809 | | ValidationError: [u'This field is required.'] |
|---|
| 3810 | | |
|---|
| 3811 | | >>> f = JPPostalCodeField(required=False) |
|---|
| 3812 | | >>> f.clean('251-0032') |
|---|
| 3813 | | u'2510032' |
|---|
| 3814 | | >>> f.clean('2510032') |
|---|
| 3815 | | u'2510032' |
|---|
| 3816 | | >>> f.clean('2510-032') |
|---|
| 3817 | | Traceback (most recent call last): |
|---|
| 3818 | | ... |
|---|
| 3819 | | ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.'] |
|---|
| 3820 | | >>> f.clean('') |
|---|
| 3821 | | u'' |
|---|
| 3822 | | >>> f.clean(None) |
|---|
| 3823 | | u'' |
|---|
| 3824 | | |
|---|
| 3825 | | # JPPrefectureSelect ############################################################### |
|---|
| 3826 | | |
|---|
| 3827 | | A Select widget that uses a list of Japanese prefectures as its choices. |
|---|
| 3828 | | >>> from django.contrib.localflavor.jp.forms import JPPrefectureSelect |
|---|
| 3829 | | >>> w = JPPrefectureSelect() |
|---|
| 3830 | | >>> print w.render('prefecture', 'kanagawa') |
|---|
| 3831 | | <select name="prefecture"> |
|---|
| 3832 | | <option value="hokkaido">Hokkaido</option> |
|---|
| 3833 | | <option value="aomori">Aomori</option> |
|---|
| 3834 | | <option value="iwate">Iwate</option> |
|---|
| 3835 | | <option value="miyagi">Miyagi</option> |
|---|
| 3836 | | <option value="akita">Akita</option> |
|---|
| 3837 | | <option value="yamagata">Yamagata</option> |
|---|
| 3838 | | <option value="fukushima">Fukushima</option> |
|---|
| 3839 | | <option value="ibaraki">Ibaraki</option> |
|---|
| 3840 | | <option value="tochigi">Tochigi</option> |
|---|
| 3841 | | <option value="gunma">Gunma</option> |
|---|
| 3842 | | <option value="saitama">Saitama</option> |
|---|
| 3843 | | <option value="chiba">Chiba</option> |
|---|
| 3844 | | <option value="tokyo">Tokyo</option> |
|---|
| 3845 | | <option value="kanagawa" selected="selected">Kanagawa</option> |
|---|
| 3846 | | <option value="yamanashi">Yamanashi</option> |
|---|
| 3847 | | <option value="nagano">Nagano</option> |
|---|
| 3848 | | <option value="niigata">Niigata</option> |
|---|
| 3849 | | <option value="toyama">Toyama</option> |
|---|
| 3850 | | <option value="ishikawa">Ishikawa</option> |
|---|
| 3851 | | <option value="fukui">Fukui</option> |
|---|
| 3852 | | <option value="gifu">Gifu</option> |
|---|
| 3853 | | <option value="shizuoka">Shizuoka</option> |
|---|
| 3854 | | <option value="aichi">Aichi</option> |
|---|
| 3855 | | <option value="mie">Mie</option> |
|---|
| 3856 | | <option value="shiga">Shiga</option> |
|---|
| 3857 | | <option value="kyoto">Kyoto</option> |
|---|
| 3858 | | <option value="osaka">Osaka</option> |
|---|
| 3859 | | <option value="hyogo">Hyogo</option> |
|---|
| 3860 | | <option value="nara">Nara</option> |
|---|
| 3861 | | <option value="wakayama">Wakayama</option> |
|---|
| 3862 | | <option value="tottori">Tottori</option> |
|---|
| 3863 | | <option value="shimane">Shimane</option> |
|---|
| 3864 | | <option value="okayama">Okayama</option> |
|---|
| 3865 | | <option value="hiroshima">Hiroshima</option> |
|---|
| 3866 | | <option value="yamaguchi">Yamaguchi</option> |
|---|
| 3867 | | <option value="tokushima">Tokushima</option> |
|---|
| 3868 | | <option value="kagawa">Kagawa</option> |
|---|
| 3869 | | <option value="ehime">Ehime</option> |
|---|
| 3870 | | <option value="kochi">Kochi</option> |
|---|
| 3871 | | <option value="fukuoka">Fukuoka</option> |
|---|
| 3872 | | <option value="saga">Saga</option> |
|---|
| 3873 | | <option value="nagasaki">Nagasaki</option> |
|---|
| 3874 | | <option value="kumamoto">Kumamoto</option> |
|---|
| 3875 | | <option value="oita">Oita</option> |
|---|
| 3876 | | <option value="miyazaki">Miyazaki</option> |
|---|
| 3877 | | <option value="kagoshima">Kagoshima</option> |
|---|
| 3878 | | <option value="okinawa">Okinawa</option> |
|---|
| 3879 | | </select> |
|---|
| 3880 | | |
|---|
| 3881 | | # ITZipCodeField ############################################################# |
|---|
| 3882 | | |
|---|
| 3883 | | >>> from django.contrib.localflavor.it.forms import ITZipCodeField |
|---|
| 3884 | | >>> f = ITZipCodeField() |
|---|
| 3885 | | >>> f.clean('00100') |
|---|
| 3886 | | u'00100' |
|---|
| 3887 | | >>> f.clean(' 00100') |
|---|
| 3888 | | Traceback (most recent call last): |
|---|
| 3889 | | ... |
|---|
| 3890 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3891 | | |
|---|
| 3892 | | # ITRegionSelect ############################################################# |
|---|
| 3893 | | |
|---|
| 3894 | | >>> from django.contrib.localflavor.it.forms import ITRegionSelect |
|---|
| 3895 | | >>> w = ITRegionSelect() |
|---|
| 3896 | | >>> w.render('regions', 'PMN') |
|---|
| 3897 | | u'<select name="regions">\n<option value="ABR">Abruzzo</option>\n<option value="BAS">Basilicata</option>\n<option value="CAL">Calabria</option>\n<option value="CAM">Campania</option>\n<option value="EMR">Emilia-Romagna</option>\n<option value="FVG">Friuli-Venezia Giulia</option>\n<option value="LAZ">Lazio</option>\n<option value="LIG">Liguria</option>\n<option value="LOM">Lombardia</option>\n<option value="MAR">Marche</option>\n<option value="MOL">Molise</option>\n<option value="PMN" selected="selected">Piemonte</option>\n<option value="PUG">Puglia</option>\n<option value="SAR">Sardegna</option>\n<option value="SIC">Sicilia</option>\n<option value="TOS">Toscana</option>\n<option value="TAA">Trentino-Alto Adige</option>\n<option value="UMB">Umbria</option>\n<option value="VAO">Valle d\u2019Aosta</option>\n<option value="VEN">Veneto</option>\n</select>' |
|---|
| 3898 | | |
|---|
| 3899 | | # FIZipCodeField ############################################################# |
|---|
| 3900 | | |
|---|
| 3901 | | FIZipCodeField validates that the data is a valid FI zipcode. |
|---|
| 3902 | | >>> from django.contrib.localflavor.fi.forms import FIZipCodeField |
|---|
| 3903 | | >>> f = FIZipCodeField() |
|---|
| 3904 | | >>> f.clean('20540') |
|---|
| 3905 | | u'20540' |
|---|
| 3906 | | >>> f.clean('20101') |
|---|
| 3907 | | u'20101' |
|---|
| 3908 | | >>> f.clean('20s40') |
|---|
| 3909 | | Traceback (most recent call last): |
|---|
| 3910 | | ... |
|---|
| 3911 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3912 | | >>> f.clean('205401') |
|---|
| 3913 | | Traceback (most recent call last): |
|---|
| 3914 | | ... |
|---|
| 3915 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3916 | | >>> f.clean(None) |
|---|
| 3917 | | Traceback (most recent call last): |
|---|
| 3918 | | ... |
|---|
| 3919 | | ValidationError: [u'This field is required.'] |
|---|
| 3920 | | >>> f.clean('') |
|---|
| 3921 | | Traceback (most recent call last): |
|---|
| 3922 | | ... |
|---|
| 3923 | | ValidationError: [u'This field is required.'] |
|---|
| 3924 | | |
|---|
| 3925 | | >>> f = FIZipCodeField(required=False) |
|---|
| 3926 | | >>> f.clean('20540') |
|---|
| 3927 | | u'20540' |
|---|
| 3928 | | >>> f.clean('20101') |
|---|
| 3929 | | u'20101' |
|---|
| 3930 | | >>> f.clean('20s40') |
|---|
| 3931 | | Traceback (most recent call last): |
|---|
| 3932 | | ... |
|---|
| 3933 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3934 | | >>> f.clean('205401') |
|---|
| 3935 | | Traceback (most recent call last): |
|---|
| 3936 | | ... |
|---|
| 3937 | | ValidationError: [u'Enter a zip code in the format XXXXX.'] |
|---|
| 3938 | | >>> f.clean(None) |
|---|
| 3939 | | u'' |
|---|
| 3940 | | >>> f.clean('') |
|---|
| 3941 | | u'' |
|---|
| 3942 | | |
|---|
| 3943 | | # FIMunicipalitySelect ############################################################### |
|---|
| 3944 | | |
|---|
| 3945 | | A Select widget that uses a list of Finnish municipalities as its choices. |
|---|
| 3946 | | >>> from django.contrib.localflavor.fi.forms import FIMunicipalitySelect |
|---|
| 3947 | | >>> w = FIMunicipalitySelect() |
|---|
| 3948 | | >>> unicode(w.render('municipalities', 'turku')) |
|---|
| 3949 | | u'<select name="municipalities">\n<option value="akaa">Akaa</option>\n<option value="alaharma">Alah\xe4rm\xe4</option>\n<option value="alajarvi">Alaj\xe4rvi</option>\n<option value="alastaro">Alastaro</option>\n<option value="alavieska">Alavieska</option>\n<option value="alavus">Alavus</option>\n<option value="anjalankoski">Anjalankoski</option>\n<option value="artjarvi">Artj\xe4rvi</option>\n<option value="asikkala">Asikkala</option>\n<option value="askainen">Askainen</option>\n<option value="askola">Askola</option>\n<option value="aura">Aura</option>\n<option value="brando">Br\xe4nd\xf6</option>\n<option value="dragsfjard">Dragsfj\xe4rd</option>\n<option value="eckero">Ecker\xf6</option>\n<option value="elimaki">Elim\xe4ki</option>\n<option value="eno">Eno</option>\n<option value="enonkoski">Enonkoski</option>\n<option value="enontekio">Enonteki\xf6</option>\n<option value="espoo">Espoo</option>\n<option value="eura">Eura</option>\n<option value="eurajoki">Eurajoki</option>\n<option value="evijarvi">Evij\xe4rvi</option>\n<option value="finstrom">Finstr\xf6m</option>\n<option value="forssa">Forssa</option>\n<option value="foglo">F\xf6gl\xf6</option>\n<option value="geta">Geta</option>\n<option value="haapajarvi">Haapaj\xe4rvi</option>\n<option value="haapavesi">Haapavesi</option>\n<option value="hailuoto">Hailuoto</option>\n<option value="halikko">Halikko</option>\n<option value="halsua">Halsua</option>\n<option value="hamina">Hamina</option>\n<option value="hammarland">Hammarland</option>\n<option value="hankasalmi">Hankasalmi</option>\n<option value="hanko">Hanko</option>\n<option value="harjavalta">Harjavalta</option>\n<option value="hartola">Hartola</option>\n<option value="hattula">Hattula</option>\n<option value="hauho">Hauho</option>\n<option value="haukipudas">Haukipudas</option>\n<option value="hausjarvi">Hausj\xe4rvi</option>\n<option value="heinola">Heinola</option>\n<option value="heinavesi">Hein\xe4vesi</option>\n<option value="helsinki">Helsinki</option>\n<option value="himanka">Himanka</option>\n<option value="hirvensalmi">Hirvensalmi</option>\n<option value="hollola">Hollola</option>\n<option value="honkajoki">Honkajoki</option>\n<option value="houtskari">Houtskari</option>\n<option value="huittinen">Huittinen</option>\n<option value="humppila">Humppila</option>\n<option value="hyrynsalmi">Hyrynsalmi</option>\n<option value="hyvinkaa">Hyvink\xe4\xe4</option>\n<option value="hameenkoski">H\xe4meenkoski</option>\n<option value="hameenkyro">H\xe4meenkyr\xf6</option>\n<option value="hameenlinna">H\xe4meenlinna</option>\n<option value="ii">Ii</option>\n<option value="iisalmi">Iisalmi</option>\n<option value="iitti">Iitti</option>\n<option value="ikaalinen">Ikaalinen</option>\n<option value="ilmajoki">Ilmajoki</option>\n<option value="ilomantsi">Ilomantsi</option>\n<option value="imatra">Imatra</option>\n<option value="inari">Inari</option>\n<option value="inio">Ini\xf6</option>\n<option value="inkoo">Inkoo</option>\n<option value="isojoki">Isojoki</option>\n<option value="isokyro">Isokyr\xf6</option>\n<option value="jaala">Jaala</option>\n<option value="jalasjarvi">Jalasj\xe4rvi</option>\n<option value="janakkala">Janakkala</option>\n<option value="joensuu">Joensuu</option>\n<option value="jokioinen">Jokioinen</option>\n<option value="jomala">Jomala</option>\n<option value="joroinen">Joroinen</option>\n<option value="joutsa">Joutsa</option>\n<option value="joutseno">Joutseno</option>\n<option value="juankoski">Juankoski</option>\n<option value="jurva">Jurva</option>\n<option value="juuka">Juuka</option>\n<option value="juupajoki">Juupajoki</option>\n<option value="juva">Juva</option>\n<option value="jyvaskyla">Jyv\xe4skyl\xe4</option>\n<option value="jyvaskylan_mlk">Jyv\xe4skyl\xe4n maalaiskunta</option>\n<option value="jamijarvi">J\xe4mij\xe4rvi</option>\n<option value="jamsa">J\xe4ms\xe4</option>\n<option value="jamsankoski">J\xe4ms\xe4nkoski</option>\n<option value="jarvenpaa">J\xe4rvenp\xe4\xe4</option>\n<option value="kaarina">Kaarina</option>\n<option value="kaavi">Kaavi</option>\n<option value="kajaani">Kajaani</option>\n<option value="kalajoki">Kalajoki</option>\n<option value="kalvola">Kalvola</option>\n<option value="kangasala">Kangasala</option>\n<option value="kangasniemi">Kangasniemi</option>\n<option value="kankaanpaa">Kankaanp\xe4\xe4</option>\n<option value="kannonkoski">Kannonkoski</option>\n<option value="kannus">Kannus</option>\n<option value="karijoki">Karijoki</option>\n<option value="karjaa">Karjaa</option>\n<option value="karjalohja">Karjalohja</option>\n<option value="karkkila">Karkkila</option>\n<option value="karstula">Karstula</option>\n<option value="karttula">Karttula</option>\n<option value="karvia">Karvia</option>\n<option value="kaskinen">Kaskinen</option>\n<option value="kauhajoki">Kauhajoki</option>\n<option value="kauhava">Kauhava</option>\n<option value="kauniainen">Kauniainen</option>\n<option value="kaustinen">Kaustinen</option>\n<option value="keitele">Keitele</option>\n<option value="kemi">Kemi</option>\n<option value="kemijarvi">Kemij\xe4rvi</option>\n<option value="keminmaa">Keminmaa</option>\n<option value="kemio">Kemi\xf6</option>\n<option value="kempele">Kempele</option>\n<option value="kerava">Kerava</option>\n<option value="kerimaki">Kerim\xe4ki</option>\n<option value="kestila">Kestil\xe4</option>\n<option value="kesalahti">Kes\xe4lahti</option>\n<option value="keuruu">Keuruu</option>\n<option value="kihnio">Kihni\xf6</option>\n<option value="kiikala">Kiikala</option>\n<option value="kiikoinen">Kiikoinen</option>\n<option value="kiiminki">Kiiminki</option>\n<option value="kinnula">Kinnula</option>\n<option value="kirkkonummi">Kirkkonummi</option>\n<option value="kisko">Kisko</option>\n<option value="kitee">Kitee</option>\n<option value="kittila">Kittil\xe4</option>\n<option value="kiukainen">Kiukainen</option>\n<option value="kiuruvesi">Kiuruvesi</option>\n<option value="kivijarvi">Kivij\xe4rvi</option>\n<option value="kokemaki">Kokem\xe4ki</option>\n<option value="kokkola">Kokkola</option>\n<option value="kolari">Kolari</option>\n<option value="konnevesi">Konnevesi</option>\n<option value="kontiolahti">Kontiolahti</option>\n<option value="korpilahti">Korpilahti</option>\n<option value="korppoo">Korppoo</option>\n<option value="korsnas">Korsn\xe4s</option>\n<option value="kortesjarvi">Kortesj\xe4rvi</option>\n<option value="koskitl">KoskiTl</option>\n<option value="kotka">Kotka</option>\n<option value="kouvola">Kouvola</option>\n<option value="kristiinankaupunki">Kristiinankaupunki</option>\n<option value="kruunupyy">Kruunupyy</option>\n<option value="kuhmalahti">Kuhmalahti</option>\n<option value="kuhmo">Kuhmo</option>\n<option value="kuhmoinen">Kuhmoinen</option>\n<option value="kumlinge">Kumlinge</option>\n<option value="kuopio">Kuopio</option>\n<option value="kuortane">Kuortane</option>\n<option value="kurikka">Kurikka</option>\n<option value="kuru">Kuru</option>\n<option value="kustavi">Kustavi</option>\n<option value="kuusamo">Kuusamo</option>\n<option value="kuusankoski">Kuusankoski</option>\n<option value="kuusjoki">Kuusjoki</option>\n<option value="kylmakoski">Kylm\xe4koski</option>\n<option value="kyyjarvi">Kyyj\xe4rvi</option>\n<option value="kalvia">K\xe4lvi\xe4</option>\n<option value="karkola">K\xe4rk\xf6l\xe4</option>\n<option value="karsamaki">K\xe4rs\xe4m\xe4ki</option>\n<option value="kokar">K\xf6kar</option>\n<option value="koylio">K\xf6yli\xf6</option>\n<option value="lahti">Lahti</option>\n<option value="laihia">Laihia</option>\n<option value="laitila">Laitila</option>\n<option value="lammi">Lammi</option>\n<option value="lapinjarvi">Lapinj\xe4rvi</option>\n<option value="lapinlahti">Lapinlahti</option>\n<option value="lappajarvi">Lappaj\xe4rvi</option>\n<option value="lappeenranta">Lappeenranta</option>\n<option value="lappi">Lappi</option>\n<option value="lapua">Lapua</option>\n<option value="laukaa">Laukaa</option>\n<option value="lavia">Lavia</option>\n<option value="lehtimaki">Lehtim\xe4ki</option>\n<option value="leivonmaki">Leivonm\xe4ki</option>\n<option value="lemi">Lemi</option>\n<option value="lemland">Lemland</option>\n<option value="lempaala">Lemp\xe4\xe4l\xe4</option>\n<option value="lemu">Lemu</option>\n<option value="leppavirta">Lepp\xe4virta</option>\n<option value="lestijarvi">Lestij\xe4rvi</option>\n<option value="lieksa">Lieksa</option>\n<option value="lieto">Lieto</option>\n<option value="liljendal">Liljendal</option>\n<option value="liminka">Liminka</option>\n<option value="liperi">Liperi</option>\n<option value="lohja">Lohja</option>\n<option value="lohtaja">Lohtaja</option>\n<option value="loimaa">Loimaa</option>\n<option value="loppi">Loppi</option>\n<option value="loviisa">Loviisa</option>\n<option value="luhanka">Luhanka</option>\n<option value="lumijoki">Lumijoki</option>\n<option value="lumparland">Lumparland</option>\n<option value="luoto">Luoto</option>\n<option value="luumaki">Luum\xe4ki</option>\n<option value="luvia">Luvia</option>\n<option value="maalahti">Maalahti</option>\n<option value="maaninka">Maaninka</option>\n<option value="maarianhamina">Maarianhamina</option>\n<option value="marttila">Marttila</option>\n<option value="masku">Masku</option>\n<option value="mellila">Mellil\xe4</option>\n<option value="merijarvi">Merij\xe4rvi</option>\n<option value="merikarvia">Merikarvia</option>\n<option value="merimasku">Merimasku</option>\n<option value="miehikkala">Miehikk\xe4l\xe4</option>\n<option value="mikkeli">Mikkeli</option>\n<option value="mouhijarvi">Mouhij\xe4rvi</option>\n<option value="muhos">Muhos</option>\n<option value="multia">Multia</option>\n<option value="muonio">Muonio</option>\n<option value="mustasaari">Mustasaari</option>\n<option value="muurame">Muurame</option>\n<option value="muurla">Muurla</option>\n<option value="mynamaki">Myn\xe4m\xe4ki</option>\n<option value="myrskyla">Myrskyl\xe4</option>\n<option value="mantsala">M\xe4nts\xe4l\xe4</option>\n<option value="mantta">M\xe4ntt\xe4</option>\n<option value="mantyharju">M\xe4ntyharju</option>\n<option value="naantali">Naantali</option>\n<option value="nakkila">Nakkila</option>\n<option value="nastola">Nastola</option>\n<option value="nauvo">Nauvo</option>\n<option value="nilsia">Nilsi\xe4</option>\n<option value="nivala">Nivala</option>\n<option value="nokia">Nokia</option>\n<option value="noormarkku">Noormarkku</option>\n<option value="nousiainen">Nousiainen</option>\n<option value="nummi-pusula">Nummi-Pusula</option>\n<option value="nurmes">Nurmes</option>\n<option value="nurmijarvi">Nurmij\xe4rvi</option>\n<option value="nurmo">Nurmo</option>\n<option value="narpio">N\xe4rpi\xf6</option>\n<option value="oravainen">Oravainen</option>\n<option value="orimattila">Orimattila</option>\n<option value="oripaa">Orip\xe4\xe4</option>\n<option value="orivesi">Orivesi</option>\n<option value="oulainen">Oulainen</option>\n<option value="oulu">Oulu</option>\n<option value="oulunsalo">Oulunsalo</option>\n<option value="outokumpu">Outokumpu</option>\n<option value="padasjoki">Padasjoki</option>\n<option value="paimio">Paimio</option>\n<option value="paltamo">Paltamo</option>\n<option value="parainen">Parainen</option>\n<option value="parikkala">Parikkala</option>\n<option value="parkano">Parkano</option>\n<option value="pedersore">Peders\xf6re</option>\n<option value="pelkosenniemi">Pelkosenniemi</option>\n<option value="pello">Pello</option>\n<option value="perho">Perho</option>\n<option value="pernaja">Pernaja</option>\n<option value="pernio">Perni\xf6</option>\n<option value="pertteli">Pertteli</option>\n<option value="pertunmaa">Pertunmaa</option>\n<option value="petajavesi">Pet\xe4j\xe4vesi</option>\n<option value="pieksamaki">Pieks\xe4m\xe4ki</option>\n<option value="pielavesi">Pielavesi</option>\n<option value="pietarsaari">Pietarsaari</option>\n<option value="pihtipudas">Pihtipudas</option>\n<option value="piikkio">Piikki\xf6</option>\n<option value="piippola">Piippola</option>\n<option value="pirkkala">Pirkkala</option>\n<option value="pohja">Pohja</option>\n<option value="polvijarvi">Polvij\xe4rvi</option>\n<option value="pomarkku">Pomarkku</option>\n<option value="pori">Pori</option>\n<option value="pornainen">Pornainen</option>\n<option value="porvoo">Porvoo</option>\n<option value="posio">Posio</option>\n<option value="pudasjarvi">Pudasj\xe4rvi</option>\n<option value="pukkila">Pukkila</option>\n<option value="pulkkila">Pulkkila</option>\n<option value="punkaharju">Punkaharju</option>\n<option value="punkalaidun">Punkalaidun</option>\n<option value="puolanka">Puolanka</option>\n<option value="puumala">Puumala</option>\n<option value="pyhtaa">Pyht\xe4\xe4</option>\n<option value="pyhajoki">Pyh\xe4joki</option>\n<option value="pyhajarvi">Pyh\xe4j\xe4rvi</option>\n<option value="pyhanta">Pyh\xe4nt\xe4</option>\n<option value="pyharanta">Pyh\xe4ranta</option>\n<option value="pyhaselka">Pyh\xe4selk\xe4</option>\n<option value="pylkonmaki">Pylk\xf6nm\xe4ki</option>\n<option value="palkane">P\xe4lk\xe4ne</option>\n<option value="poytya">P\xf6yty\xe4</option>\n<option value="raahe">Raahe</option>\n<option value="raisio">Raisio</option>\n<option value="rantasalmi">Rantasalmi</option>\n<option value="rantsila">Rantsila</option>\n<option value="ranua">Ranua</option>\n<option value="rauma">Rauma</option>\n<option value="rautalampi">Rautalampi</option>\n<option value="rautavaara">Rautavaara</option>\n<option value="rautjarvi">Rautj\xe4rvi</option>\n<option value="reisjarvi">Reisj\xe4rvi</option>\n<option value="renko">Renko</option>\n<option value="riihimaki">Riihim\xe4ki</option>\n<option value="ristiina">Ristiina</option>\n<option value="ristijarvi">Ristij\xe4rvi</option>\n<option value="rovaniemi">Rovaniemi</option>\n<option value="ruokolahti">Ruokolahti</option>\n<option value="ruotsinpyhtaa">Ruotsinpyht\xe4\xe4</option>\n<option value="ruovesi">Ruovesi</option>\n<option value="rusko">Rusko</option>\n<option value="rymattyla">Rym\xe4ttyl\xe4</option>\n<option value="raakkyla">R\xe4\xe4kkyl\xe4</option>\n<option value="saarijarvi">Saarij\xe4rvi</option>\n<option value="salla">Salla</option>\n<option value="salo">Salo</option>\n<option value="saltvik">Saltvik</option>\n<option value="sammatti">Sammatti</option>\n<option value="sauvo">Sauvo</option>\n<option value="savitaipale">Savitaipale</option>\n<option value="savonlinna">Savonlinna</option>\n<option value="savonranta">Savonranta</option>\n<option value="savukoski">Savukoski</option>\n<option value="seinajoki">Sein\xe4joki</option>\n<option value="sievi">Sievi</option>\n<option value="siikainen">Siikainen</option>\n<option value="siikajoki">Siikajoki</option>\n<option value="siilinjarvi">Siilinj\xe4rvi</option>\n<option value="simo">Simo</option>\n<option value="sipoo">Sipoo</option>\n<option value="siuntio">Siuntio</option>\n<option value="sodankyla">Sodankyl\xe4</option>\n<option value="soini">Soini</option>\n<option value="somero">Somero</option>\n<option value="sonkajarvi">Sonkaj\xe4rvi</option>\n<option value="sotkamo">Sotkamo</option>\n<option value="sottunga">Sottunga</option>\n<option value="sulkava">Sulkava</option>\n<option value="sund">Sund</option>\n<option value="suomenniemi">Suomenniemi</option>\n<option value="suomusjarvi">Suomusj\xe4rvi</option>\n<option value="suomussalmi">Suomussalmi</option>\n<option value="suonenjoki">Suonenjoki</option>\n<option value="sysma">Sysm\xe4</option>\n<option value="sakyla">S\xe4kyl\xe4</option>\n<option value="sarkisalo">S\xe4rkisalo</option>\n<option value="taipalsaari">Taipalsaari</option>\n<option value="taivalkoski">Taivalkoski</option>\n<option value="taivassalo">Taivassalo</option>\n<option value="tammela">Tammela</option>\n<option value="tammisaari">Tammisaari</option>\n<option value="tampere">Tampere</option>\n<option value="tarvasjoki">Tarvasjoki</option>\n<option value="tervo">Tervo</option>\n<option value="tervola">Tervola</option>\n<option value="teuva">Teuva</option>\n<option value="tohmajarvi">Tohmaj\xe4rvi</option>\n<option value="toholampi">Toholampi</option>\n<option value="toivakka">Toivakka</option>\n<option value="tornio">Tornio</option>\n<option value="turku" selected="selected">Turku</option>\n<option value="tuulos">Tuulos</option>\n<option value="tuusniemi">Tuusniemi</option>\n<option value="tuusula">Tuusula</option>\n<option value="tyrnava">Tyrn\xe4v\xe4</option>\n<option value="toysa">T\xf6ys\xe4</option>\n<option value="ullava">Ullava</option>\n<option value="ulvila">Ulvila</option>\n<option value="urjala">Urjala</option>\n<option value="utajarvi">Utaj\xe4rvi</option>\n<option value="utsjoki">Utsjoki</option>\n<option value="uurainen">Uurainen</option>\n<option value="uusikaarlepyy">Uusikaarlepyy</option>\n<option value="uusikaupunki">Uusikaupunki</option>\n<option value="vaala">Vaala</option>\n<option value="vaasa">Vaasa</option>\n<option value="vahto">Vahto</option>\n<option value="valkeakoski">Valkeakoski</option>\n<option value="valkeala">Valkeala</option>\n<option value="valtimo">Valtimo</option>\n<option value="vammala">Vammala</option>\n<option value="vampula">Vampula</option>\n<option value="vantaa">Vantaa</option>\n<option value="varkaus">Varkaus</option>\n<option value="varpaisjarvi">Varpaisj\xe4rvi</option>\n<option value="vehmaa">Vehmaa</option>\n<option value="velkua">Velkua</option>\n<option value="vesanto">Vesanto</option>\n<option value="vesilahti">Vesilahti</option>\n<option value="veteli">Veteli</option>\n<option value="vierema">Vierem\xe4</option>\n<option value="vihanti">Vihanti</option>\n<option value="vihti">Vihti</option>\n<option value="viitasaari">Viitasaari</option>\n<option value="vilppula">Vilppula</option>\n<option value="vimpeli">Vimpeli</option>\n<option value="virolahti">Virolahti</option>\n<option value="virrat">Virrat</option>\n<option value="vardo">V\xe5rd\xf6</option>\n<option value="vahakyro">V\xe4h\xe4kyr\xf6</option>\n<option value="vastanfjard">V\xe4stanfj\xe4rd</option>\n<option value="voyri-maksamaa">V\xf6yri-Maksamaa</option>\n<option value="yliharma">Ylih\xe4rm\xe4</option>\n<option value="yli-ii">Yli-Ii</option>\n<option value="ylikiiminki">Ylikiiminki</option>\n<option value="ylistaro">Ylistaro</option>\n<option value="ylitornio">Ylitornio</option>\n<option value="ylivieska">Ylivieska</option>\n<option value="ylamaa">Yl\xe4maa</option>\n<option value="ylane">Yl\xe4ne</option>\n<option value="ylojarvi">Yl\xf6j\xe4rvi</option>\n<option value="ypaja">Yp\xe4j\xe4</option>\n<option value="aetsa">\xc4ets\xe4</option>\n<option value="ahtari">\xc4ht\xe4ri</option>\n<option value="aanekoski">\xc4\xe4nekoski</option>\n</select>' |
|---|
| 3950 | | |
|---|
| 3951 | | # FISocialSecurityNumber |
|---|
| 3952 | | ############################################################## |
|---|
| 3953 | | |
|---|
| 3954 | | >>> from django.contrib.localflavor.fi.forms import FISocialSecurityNumber |
|---|
| 3955 | | >>> f = FISocialSecurityNumber() |
|---|
| 3956 | | >>> f.clean('010101-0101') |
|---|
| 3957 | | u'010101-0101' |
|---|
| 3958 | | >>> f.clean('010101+0101') |
|---|
| 3959 | | u'010101+0101' |
|---|
| 3960 | | >>> f.clean('010101A0101') |
|---|
| 3961 | | u'010101A0101' |
|---|
| 3962 | | >>> f.clean('101010-0102') |
|---|
| 3963 | | Traceback (most recent call last): |
|---|
| 3964 | | ... |
|---|
| 3965 | | ValidationError: [u'Enter a valid Finnish social security number.'] |
|---|
| 3966 | | >>> f.clean('10a010-0101') |
|---|
| 3967 | | Traceback (most recent call last): |
|---|
| 3968 | | ... |
|---|
| 3969 | | ValidationError: [u'Enter a valid Finnish social security number.'] |
|---|
| 3970 | | >>> f.clean('101010-0\xe401') |
|---|
| 3971 | | Traceback (most recent call last): |
|---|
| 3972 | | ... |
|---|
| 3973 | | ValidationError: [u'Enter a valid Finnish social security number.'] |
|---|
| 3974 | | >>> f.clean('101010b0101') |
|---|
| 3975 | | Traceback (most recent call last): |
|---|
| 3976 | | ... |
|---|
| 3977 | | ValidationError: [u'Enter a valid Finnish social security number.'] |
|---|
| 3978 | | >>> f.clean('') |
|---|
| 3979 | | Traceback (most recent call last): |
|---|
| 3980 | | ... |
|---|
| 3981 | | ValidationError: [u'This field is required.'] |
|---|
| 3982 | | |
|---|
| 3983 | | >>> f.clean(None) |
|---|
| 3984 | | Traceback (most recent call last): |
|---|
| 3985 | | ... |
|---|
| 3986 | | ValidationError: [u'This field is required.'] |
|---|
| 3987 | | >>> f = FISocialSecurityNumber(required=False) |
|---|
| 3988 | | >>> f.clean('010101-0101') |
|---|
| 3989 | | u'010101-0101' |
|---|
| 3990 | | >>> f.clean(None) |
|---|
| 3991 | | u'' |
|---|
| 3992 | | >>> f.clean('') |
|---|
| 3993 | | u'' |
|---|
| 3994 | | |
|---|
| 3995 | | # BRZipCodeField ############################################################ |
|---|
| 3996 | | >>> from django.contrib.localflavor.br.forms import BRZipCodeField |
|---|
| 3997 | | >>> f = BRZipCodeField() |
|---|
| 3998 | | >>> f.clean('12345-123') |
|---|
| 3999 | | u'12345-123' |
|---|
| 4000 | | >>> f.clean('12345_123') |
|---|
| 4001 | | Traceback (most recent call last): |
|---|
| 4002 | | ... |
|---|
| 4003 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4004 | | >>> f.clean('1234-123') |
|---|
| 4005 | | Traceback (most recent call last): |
|---|
| 4006 | | ... |
|---|
| 4007 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4008 | | >>> f.clean('abcde-abc') |
|---|
| 4009 | | Traceback (most recent call last): |
|---|
| 4010 | | ... |
|---|
| 4011 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4012 | | >>> f.clean('12345-') |
|---|
| 4013 | | Traceback (most recent call last): |
|---|
| 4014 | | ... |
|---|
| 4015 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4016 | | >>> f.clean('-123') |
|---|
| 4017 | | Traceback (most recent call last): |
|---|
| 4018 | | ... |
|---|
| 4019 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4020 | | >>> f.clean('') |
|---|
| 4021 | | Traceback (most recent call last): |
|---|
| 4022 | | ... |
|---|
| 4023 | | ValidationError: [u'This field is required.'] |
|---|
| 4024 | | >>> f.clean(None) |
|---|
| 4025 | | Traceback (most recent call last): |
|---|
| 4026 | | ... |
|---|
| 4027 | | ValidationError: [u'This field is required.'] |
|---|
| 4028 | | |
|---|
| 4029 | | >>> f = BRZipCodeField(required=False) |
|---|
| 4030 | | >>> f.clean(None) |
|---|
| 4031 | | u'' |
|---|
| 4032 | | >>> f.clean('') |
|---|
| 4033 | | u'' |
|---|
| 4034 | | >>> f.clean('-123') |
|---|
| 4035 | | Traceback (most recent call last): |
|---|
| 4036 | | ... |
|---|
| 4037 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4038 | | >>> f.clean('12345-') |
|---|
| 4039 | | Traceback (most recent call last): |
|---|
| 4040 | | ... |
|---|
| 4041 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4042 | | >>> f.clean('abcde-abc') |
|---|
| 4043 | | Traceback (most recent call last): |
|---|
| 4044 | | ... |
|---|
| 4045 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4046 | | >>> f.clean('1234-123') |
|---|
| 4047 | | Traceback (most recent call last): |
|---|
| 4048 | | ... |
|---|
| 4049 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4050 | | >>> f.clean('12345_123') |
|---|
| 4051 | | Traceback (most recent call last): |
|---|
| 4052 | | ... |
|---|
| 4053 | | ValidationError: [u'Informe um c\xf3digo postal no formato XXXXX-XXX.'] |
|---|
| 4054 | | >>> f.clean('12345-123') |
|---|
| 4055 | | u'12345-123' |
|---|
| 4056 | | |
|---|
| 4057 | | # BRPhoneNumberField ######################################################### |
|---|
| 4058 | | |
|---|
| 4059 | | >>> from django.contrib.localflavor.br.forms import BRPhoneNumberField |
|---|
| 4060 | | >>> f = BRPhoneNumberField() |
|---|
| 4061 | | >>> f.clean('41-3562-3464') |
|---|
| 4062 | | u'41-3562-3464' |
|---|
| 4063 | | >>> f.clean('4135623464') |
|---|
| 4064 | | u'41-3562-3464' |
|---|
| 4065 | | >>> f.clean('41 3562-3464') |
|---|
| 4066 | | u'41-3562-3464' |
|---|
| 4067 | | >>> f.clean('41 3562 3464') |
|---|
| 4068 | | u'41-3562-3464' |
|---|
| 4069 | | >>> f.clean('(41) 3562 3464') |
|---|
| 4070 | | u'41-3562-3464' |
|---|
| 4071 | | >>> f.clean('41.3562.3464') |
|---|
| 4072 | | u'41-3562-3464' |
|---|
| 4073 | | >>> f.clean('41.3562-3464') |
|---|
| 4074 | | u'41-3562-3464' |
|---|
| 4075 | | >>> f.clean(' (41) 3562.3464') |
|---|
| 4076 | | u'41-3562-3464' |
|---|
| 4077 | | >>> f.clean(None) |
|---|
| 4078 | | Traceback (most recent call last): |
|---|
| 4079 | | ... |
|---|
| 4080 | | ValidationError: [u'This field is required.'] |
|---|
| 4081 | | >>> f.clean('') |
|---|
| 4082 | | Traceback (most recent call last): |
|---|
| 4083 | | ... |
|---|
| 4084 | | ValidationError: [u'This field is required.'] |
|---|
| 4085 | | |
|---|
| 4086 | | >>> f = BRPhoneNumberField(required=False) |
|---|
| 4087 | | >>> f.clean('') |
|---|
| 4088 | | u'' |
|---|
| 4089 | | >>> f.clean(None) |
|---|
| 4090 | | u'' |
|---|
| 4091 | | >>> f.clean(' (41) 3562.3464') |
|---|
| 4092 | | u'41-3562-3464' |
|---|
| 4093 | | >>> f.clean('41.3562-3464') |
|---|
| 4094 | | u'41-3562-3464' |
|---|
| 4095 | | >>> f.clean('(41) 3562 3464') |
|---|
| 4096 | | u'41-3562-3464' |
|---|
| 4097 | | >>> f.clean('4135623464') |
|---|
| 4098 | | u'41-3562-3464' |
|---|
| 4099 | | >>> f.clean('41 3562-3464') |
|---|
| 4100 | | u'41-3562-3464' |
|---|
| 4101 | | |
|---|
| 4102 | | # BRStateSelect ############################################################## |
|---|
| 4103 | | |
|---|
| 4104 | | >>> from django.contrib.localflavor.br.forms import BRStateSelect |
|---|
| 4105 | | >>> w = BRStateSelect() |
|---|
| 4106 | | >>> w.render('states', 'PR') |
|---|
| 4107 | | u'<select name="states">\n<option value="AC">Acre</option>\n<option value="AL">Alagoas</option>\n<option value="AP">Amap\xe1</option>\n<option value="AM">Amazonas</option>\n<option value="BA">Bahia</option>\n<option value="CE">Cear\xe1</option>\n<option value="DF">Distrito Federal</option>\n<option value="ES">Esp\xedrito Santo</option>\n<option value="GO">Goi\xe1s</option>\n<option value="MA">Maranh\xe3o</option>\n<option value="MT">Mato Grosso</option>\n<option value="MS">Mato Grosso do Sul</option>\n<option value="MG">Minas Gerais</option>\n<option value="PA">Par\xe1</option>\n<option value="PB">Para\xedba</option>\n<option value="PR" selected="selected">Paran\xe1</option>\n<option value="PE">Pernambuco</option>\n<option value="PI">Piau\xed</option>\n<option value="RJ">Rio de Janeiro</option>\n<option value="RN">Rio Grande do Norte</option>\n<option value="RS">Rio Grande do Sul</option>\n<option value="RO">Rond\xf4nia</option>\n<option value="RR">Roraima</option>\n<option value="SC">Santa Catarina</option>\n<option value="SP">S\xe3o Paulo</option>\n<option value="SE">Sergipe</option>\n<option value="TO">Tocantins</option>\n</select>' |
|---|
| 4108 | | |
|---|