From 65ff01b7132ffe493f5d14b1fff16105100024f5 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 16 Aug 2024 17:53:12 +0800 Subject: [PATCH] fix parse_json_fields --- app/schemas/subscribe.py | 12 +++++++----- app/schemas/user.py | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/schemas/subscribe.py b/app/schemas/subscribe.py index c1e96c34..2d2a52bb 100644 --- a/app/schemas/subscribe.py +++ b/app/schemas/subscribe.py @@ -69,11 +69,13 @@ class Subscribe(BaseModel): @validator('sites', pre=True) def parse_json_fields(cls, value): if value: - try: - return json.loads(value) - except json.JSONDecodeError: - raise ValueError(f"Invalid JSON string: {value}") - return {} + if isinstance(value, str): + try: + return json.loads(value) + except json.JSONDecodeError: + return [] + return value + return [] class Config: orm_mode = True diff --git a/app/schemas/user.py b/app/schemas/user.py index b5d5f577..fab99579 100644 --- a/app/schemas/user.py +++ b/app/schemas/user.py @@ -26,10 +26,12 @@ class UserBase(BaseModel): @validator('permissions', 'settings', pre=True) def parse_json_fields(cls, value): if value: - try: - return json.loads(value) - except json.JSONDecodeError: - raise ValueError(f"Invalid JSON string: {value}") + if isinstance(value, str): + try: + return json.loads(value) + except json.JSONDecodeError: + return {} + return value return {} class Config: