This commit is contained in:
ddrwode
2026-03-06 13:29:10 +08:00
parent 5c7b09cf22
commit b43e2b51ad
2 changed files with 12 additions and 8 deletions

View File

@@ -200,13 +200,6 @@ def task_list(request):
# POST: 提交新任务
data = request.data.copy()
# form-data 中 params 可能是 JSON 字符串
params_raw = data.get("params", {})
if isinstance(params_raw, str):
try:
data["params"] = json.loads(params_raw) if params_raw.strip() else {}
except (json.JSONDecodeError, ValueError):
data["params"] = {}
ser = TaskCreateSerializer(data=data)
if not ser.is_valid():
@@ -215,6 +208,17 @@ def task_list(request):
raise ValidationError(ser.errors)
validated = ser.validated_data.copy()
# form-data 中 params 是 JSON 字符串,需要手动解析
params_raw = validated.get("params", "")
if isinstance(params_raw, str):
try:
validated["params"] = json.loads(params_raw) if params_raw.strip() else {}
except (json.JSONDecodeError, ValueError):
validated["params"] = {}
elif not isinstance(params_raw, dict):
validated["params"] = {}
# boss_id 即 /api/accounts 返回的 id账号主键与 id/account_id 等价,均按主键查表
account_id = (
validated.pop("id", None)

View File

@@ -45,7 +45,7 @@ class TaskCreateSerializer(serializers.Serializer):
boss_id = serializers.CharField(max_length=64, required=False, allow_blank=True, default="") # 即 /api/accounts 返回的 id账号主键
worker_id = serializers.CharField(max_length=64, required=False, allow_blank=True, default="")
account_name = serializers.CharField(max_length=128, required=False, allow_blank=True, default="")
params = serializers.JSONField(required=False, default=dict)
params = serializers.CharField(required=False, allow_blank=True, default="")
class TaskOutSerializer(serializers.Serializer):