From fbe060d7ca8f59ec4dcd39270a1b27775f8d2652 Mon Sep 17 00:00:00 2001 From: 27942 Date: Thu, 5 Mar 2026 23:39:20 +0800 Subject: [PATCH] haha --- server/serializers.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/serializers.py b/server/serializers.py index b79890d..7e08caf 100644 --- a/server/serializers.py +++ b/server/serializers.py @@ -109,15 +109,15 @@ class FilterConfigSerializer(serializers.ModelSerializer): read_only_fields = ["id", "created_at", "updated_at"] def to_internal_value(self, data): - """请求中兼容 minAmount/maxAmount、最小金额/最大金额 等别名,统一为 min_amount/max_amount。""" - if isinstance(data, dict): - data = dict(data) - for alias, canonical in FILTER_AMOUNT_ALIASES.items(): - if alias in data and canonical not in data: - data[canonical] = data.pop(alias) - # 请求里 is_active 可能是字符串 "true"/"false" - if "is_active" in data and isinstance(data["is_active"], str): - data["is_active"] = data["is_active"].lower() in ("true", "1", "yes", "是") + """请求中兼容 minAmount/maxAmount、最小金额/最大金额 等别名;支持 multipart/form-data(QueryDict)。""" + # multipart/form-data 时 request.data 是 QueryDict,需转为普通 dict 并统一处理 + data = dict(data) if data is not None else {} + for alias, canonical in FILTER_AMOUNT_ALIASES.items(): + if alias in data and canonical not in data: + data[canonical] = data.pop(alias) + # 请求里 is_active 可能是字符串 "true"/"false"(表单项均为字符串) + if "is_active" in data and isinstance(data.get("is_active"), str): + data["is_active"] = data["is_active"].lower() in ("true", "1", "yes", "是") return super().to_internal_value(data)