dj-ec-idcardfield#
An Idcard and RUC field for Ecuador for Django Models, Forms, and Serializers.
Installation#
It requires Python 3.8+ and Django 4.2+ to run.
pip install dj-ec-idcardfield
Usage#
Settings#
First, add 'dj_ec_idcardfield' to your INSTALLED_APPS in settings.py file:
INSTALLED_APPS = [
...
'dj_ec_idcardfield',
...
]
Models#
from django.db.models import Model
from dj_ec_idcardfield.models import IdcardField, IdcardOrRUCField, RUCField
class MandatoryIdcard(Model):
idcard = IdcardField()
class OptionalIdcard(Model):
idcard = IdcardField(blank=True, default='')
class MandatoryRUC(Model):
ruc = RUCField()
class OptionalRUC(Model):
ruc = RUCField(blank=True, default='')
class MandatoryIdcardOrRUC(Model):
idcard_or_ruc = IdcardOrRUCField()
class OptionalIdcardOrRUC(Model):
idcard_or_ruc = IdcardOrRUCField(blank=True, default='')
Forms#
from django.forms import Form
from dj_ec_idcardfield.forms import IdcardField, IdcardOrRUCField, RUCField
class MandatoryIdcardForm(Form):
idcard = IdcardField()
class OptionalIdcardForm(Form):
idcard = IdcardField(required=False)
class MandatoryRUCForm(Form):
ruc = RUCField()
class OptionalRUCForm(Form):
ruc = RUCField(required=False)
class MandatoryIdcardOrRUCForm(Form):
idcard_or_ruc = IdcardOrRUCField()
class OptionalIdcardOrRUCForm(Form):
idcard_or_ruc = IdcardOrRUCField(required=False)
Serializers#
Before using Serializer fields, you must install Django REST Framework 3.14+:
pip install djangorestframework
from rest_framework.serializers import Serializer
from dj_ec_idcardfield.serializers import IdcardField, IdcardOrRUCField, RUCField
class MandatoryIdcardSerializer(Serializer):
idcard = IdcardField()
class OptionalIdcardSerializer(Serializer):
idcard = IdcardField(required=False, allow_blank=True)
class MandatoryRUCSerializer(Serializer):
ruc = RUCField()
class OptionalRUCSerializer(Serializer):
ruc = RUCField(required=False, allow_blank=True)
class MandatoryIdcardOrRUCSerializer(Serializer):
idcard_or_ruc = IdcardOrRUCField()
class OptionalIdcardOrRUCSerializer(Serializer):
idcard_or_ruc = IdcardOrRUCField(required=False, allow_blank=True)
Testing#
# Clone repository
git clone https://github.com/hugofer93/dj-ec-idcardfield/
# Up service with Docker Compose
docker compose up -d
# Run tests
docker compose exec dj-ec-idcardfield poetry run pytest
# If you want to test compat with others versions
docker compose exec dj-ec-idcardfield poetry run tox --parrallel auto
License#
Released under MIT License.