update
This commit is contained in:
parent
a9fe6e4d5a
commit
484b895d30
@ -41,8 +41,7 @@ async def login_access_token(credentials: CredentialsSchema):
|
|||||||
async def get_userinfo():
|
async def get_userinfo():
|
||||||
user_id = CTX_USER_ID.get()
|
user_id = CTX_USER_ID.get()
|
||||||
user_obj = await user_controller.get(id=user_id)
|
user_obj = await user_controller.get(id=user_id)
|
||||||
data = await user_obj.to_dict()
|
data = await user_obj.to_dict(exclude_fields=["password"])
|
||||||
data.pop("password")
|
|
||||||
data["avatar"] = "https://avatars.githubusercontent.com/u/54677442?v=4"
|
data["avatar"] = "https://avatars.githubusercontent.com/u/54677442?v=4"
|
||||||
return Success(data=data)
|
return Success(data=data)
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ async def list_user(
|
|||||||
if email:
|
if email:
|
||||||
q &= Q(email__contains=email)
|
q &= Q(email__contains=email)
|
||||||
total, user_objs = await user_controller.list(page=page, page_size=page_size, search=q)
|
total, user_objs = await user_controller.list(page=page, page_size=page_size, search=q)
|
||||||
data = [await obj.to_dict(m2m=True) for obj in user_objs]
|
data = [await obj.to_dict(m2m=True, exclude_fields=["password"]) for obj in user_objs]
|
||||||
return SuccessExtra(data=data, total=total, page=page, page_size=page_size)
|
return SuccessExtra(data=data, total=total, page=page, page_size=page_size)
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ async def get_user(
|
|||||||
):
|
):
|
||||||
user_controller = UserController()
|
user_controller = UserController()
|
||||||
user_obj = await user_controller.get(id=user_id)
|
user_obj = await user_controller.get(id=user_id)
|
||||||
user_dict = await user_obj.to_dict()
|
user_dict = await user_obj.to_dict(exclude_fields=["password"])
|
||||||
return Success(data=user_dict)
|
return Success(data=user_dict)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -8,19 +8,26 @@ from app.settings import settings
|
|||||||
class BaseModel(models.Model):
|
class BaseModel(models.Model):
|
||||||
id = fields.BigIntField(pk=True, index=True)
|
id = fields.BigIntField(pk=True, index=True)
|
||||||
|
|
||||||
async def to_dict(self, m2m=False):
|
async def to_dict(self, m2m: bool = False, exclude_fields: list[str] | None = None):
|
||||||
|
if exclude_fields is None:
|
||||||
|
exclude_fields = []
|
||||||
|
|
||||||
d = {}
|
d = {}
|
||||||
for field in self._meta.db_fields:
|
for field in self._meta.db_fields:
|
||||||
|
if field not in exclude_fields:
|
||||||
value = getattr(self, field)
|
value = getattr(self, field)
|
||||||
if isinstance(value, datetime):
|
if isinstance(value, datetime):
|
||||||
value = value.strftime(settings.DATETIME_FORMAT)
|
value = value.strftime(settings.DATETIME_FORMAT)
|
||||||
d[field] = value
|
d[field] = value
|
||||||
if m2m:
|
if m2m:
|
||||||
for field in self._meta.m2m_fields:
|
for field in self._meta.m2m_fields:
|
||||||
|
if field not in exclude_fields:
|
||||||
values = [value for value in await getattr(self, field).all().values()]
|
values = [value for value in await getattr(self, field).all().values()]
|
||||||
for value in values:
|
for value in values:
|
||||||
value.update(
|
value.update(
|
||||||
(k, v.strftime(settings.DATETIME_FORMAT)) for k, v in value.items() if isinstance(v, datetime)
|
(k, v.strftime(settings.DATETIME_FORMAT))
|
||||||
|
for k, v in value.items()
|
||||||
|
if isinstance(v, datetime)
|
||||||
)
|
)
|
||||||
d[field] = values
|
d[field] = values
|
||||||
return d
|
return d
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user