From 7029f858f98d30035923a85d3179a03c11c87d31 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 7 Jul 2026 15:07:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20filters=E5=85=BC=E5=AE=B9dict=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F(=E9=9D=9Elist)=EF=BC=8C=E9=81=BF=E5=85=8Diter=20strin?= =?UTF-8?q?g=E6=97=B6.get()=E6=8A=A5AttributeError?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pricing/pricing.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pricing/pricing.py b/pricing/pricing.py index 289a853..b376c42 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -621,8 +621,16 @@ order by b.enabled_date desc""" # 检查 filters 区间条件(新格式,AND逻辑:所有filter_item都要匹配) # 带 unit_prices 的 filter_item 是 tiered 定价,跳过(由后面第二块处理) + # 兼容两种格式:list of dicts 或 dict if p_ok and is_new_format and 'filters' in p: - for filter_item in p['filters']: + raw_filters = p['filters'] + if isinstance(raw_filters, dict): + filter_items = [raw_filters] + else: + filter_items = raw_filters + for filter_item in filter_items: + if not isinstance(filter_item, dict): + continue if 'unit_prices' in filter_item: continue # tiered定价项,不在此处检查 item_ok = True