feat: faker data: identification

This commit is contained in:
Zhaolong
2022-01-26 17:11:24 +08:00
parent da9965e2ae
commit 1e3d584870
10 changed files with 206 additions and 28 deletions

View File

@@ -1 +1,2 @@
from .person import Person
from .person import Person
from .person import SexEnum

View File

@@ -1,4 +1,5 @@
from base import db
from enum import Enum
class Person(db.Model):
@@ -9,3 +10,35 @@ class Person(db.Model):
age = db.Column(db.Integer, nullable=False)
address = db.Column(db.String(20), nullable=False)
identification = db.Column(db.String(18), nullable=False)
phone = db.Column(db.String(20), nullable=False)
@classmethod
def __from_dict__(cls, **data: dict):
obj = cls()
obj.__dict__.update(data)
return obj
def __to_dict__(self):
return {c.name: str(getattr(self, c.name)) for c in self.__table__.columns}
class SexEnum(Enum):
FEMALE = 0, ''
MALE = 1, ''
def __new__(cls, *values):
obj = object.__new__(cls)
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
obj.sex = values[1]
return obj
def __repr__(self):
return '<%s.%s: %s>' % (
self.__class__.__name__,
self._name_,
', '.join([repr(v) for v in self._all_values]),
)