haha
This commit is contained in:
@@ -200,13 +200,6 @@ def task_list(request):
|
|||||||
|
|
||||||
# POST: 提交新任务
|
# POST: 提交新任务
|
||||||
data = request.data.copy()
|
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)
|
ser = TaskCreateSerializer(data=data)
|
||||||
if not ser.is_valid():
|
if not ser.is_valid():
|
||||||
@@ -215,6 +208,17 @@ def task_list(request):
|
|||||||
raise ValidationError(ser.errors)
|
raise ValidationError(ser.errors)
|
||||||
|
|
||||||
validated = ser.validated_data.copy()
|
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 等价,均按主键查表
|
# boss_id 即 /api/accounts 返回的 id(账号主键),与 id/account_id 等价,均按主键查表
|
||||||
account_id = (
|
account_id = (
|
||||||
validated.pop("id", None)
|
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(账号主键)
|
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="")
|
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="")
|
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):
|
class TaskOutSerializer(serializers.Serializer):
|
||||||
|
|||||||
Reference in New Issue
Block a user