haha
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user