fix parse_json_fields

This commit is contained in:
jxxghp
2024-08-16 17:53:12 +08:00
parent 5d3809b8f5
commit 65ff01b713
2 changed files with 13 additions and 9 deletions
+7 -5
View File
@@ -69,11 +69,13 @@ class Subscribe(BaseModel):
@validator('sites', pre=True) @validator('sites', pre=True)
def parse_json_fields(cls, value): def parse_json_fields(cls, value):
if value: if value:
try: if isinstance(value, str):
return json.loads(value) try:
except json.JSONDecodeError: return json.loads(value)
raise ValueError(f"Invalid JSON string: {value}") except json.JSONDecodeError:
return {} return []
return value
return []
class Config: class Config:
orm_mode = True orm_mode = True
+6 -4
View File
@@ -26,10 +26,12 @@ class UserBase(BaseModel):
@validator('permissions', 'settings', pre=True) @validator('permissions', 'settings', pre=True)
def parse_json_fields(cls, value): def parse_json_fields(cls, value):
if value: if value:
try: if isinstance(value, str):
return json.loads(value) try:
except json.JSONDecodeError: return json.loads(value)
raise ValueError(f"Invalid JSON string: {value}") except json.JSONDecodeError:
return {}
return value
return {} return {}
class Config: class Config: