Django表单提交后仅price字段返回None其余字段正常显示如何解决
排查及解决步骤
1. 优先核查price_cal函数的分支覆盖情况
当前price_cal仅针对flight_number的两种固定取值做了返回处理,只要前端传递的flight_number和这两个值存在字符差异(包括大小写、前后空格、文字不符),函数就没有默认返回值,默认返回None,这是概率最高的诱因。
可先添加日志和兜底返回验证:
def price_cal(): # 打印实际接收的参数,确认值是否符合预期 print(f"flight_number实际值:|{flight_number}|,suburb实际值:|{suburb}|,乘客数实际值:|{no_of_passenger}|") if flight_number == 'Drop off To airport': return int(suburbs.get(suburb, 0)) + (int(no_of_passenger) * 10) - 10 elif flight_number == 'Pickup from airport': return int(suburbs.get(suburb, 0)) + (int(no_of_passenger) * 10) # 添加兜底返回,避免无匹配时返回None return 0
提交请求后查看服务端控制台的打印内容,即可确认flight_number的实际值是否和判断条件完全匹配。
2. 快速定位问题范围
可以先屏蔽计算逻辑,直接给price赋固定值测试:
# price = price_cal() price = 100
如果页面可以正常显示100,说明问题完全出在price_cal的计算逻辑内,无需排查模板传参、变量渲染的问题。
3. 其他低频问题排查
- 确认
suburbs字典中存在对应suburb的键,避免suburbs.get(suburb)返回None引发异常(你提到没有报错,该场景概率较低) - 确认前端模板中价格渲染的变量为
{{ price }},无拼写、大小写错误
内容的提问来源于stack exchange,提问作者Peter Kam
相关产品推荐
相关产品推荐

