guzhi/app/models/base.py
2023-08-15 16:09:22 +08:00

27 lines
655 B
Python

from tortoise import fields, models
class BaseModel(models.Model):
id = fields.BigIntField(pk=True, index=True)
async def to_dict(self, m2m=True):
d = {}
for field in self._meta.db_fields:
d[field] = getattr(self, field)
if m2m:
for field in self._meta.m2m_fields:
d[field] = await getattr(self, field).all().values()
return d
class Meta:
abstract = True
class UUIDModel:
uuid = fields.UUIDField(unique=True, pk=False)
class TimestampMixin:
created_at = fields.DatetimeField(auto_now_add=True)
updated_at = fields.DatetimeField(auto_now=True)