Source code for localflavor.es.models
from django.db.models import CharField
from django.utils.translation import gettext_lazy as _
from .forms import ESIdentityCardNumberField as ESIdentityCardNumberFormField
from .forms import ESPostalCodeField as ESPostalCodeFormField
[docs]class ESPostalCodeField(CharField):
"""
A model field that stores the five numbers (XXXXX) of Spain Postal Codes
Forms represent it as ``form.ESPostalCodeField``
.. versionadded:: 2.2
"""
description = _("Spain postal code (five numbers)")
def __init__(self, *args, **kwargs):
kwargs['max_length'] = 5
super().__init__(*args, **kwargs)
[docs] def formfield(self, **kwargs):
defaults = {'form_class': ESPostalCodeFormField}
defaults.update(kwargs)
return super().formfield(**defaults)
[docs]class ESIdentityCardNumberField(CharField):
"""A model field that stores Spanish NIF/NIE/CIF in format ``XXXXXXXXX``
Forms represent it as ``form.ESIdentityCardNumberField`` field.
.. versionadded:: 2.2
"""
description = _("Identification National Document")
def __init__(self, *args, **kwargs):
kwargs['max_length'] = 9
super().__init__(*args, **kwargs)
[docs] def to_python(self, value):
value = super().to_python(value)
if value is not None:
return value.upper().replace(' ', '').replace('-', '')
return value