You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django提交HTML表单到MySQL时gender等字段存为'on'如何解决

问题原因

HTML的radio类型输入框如果未显式指定value属性,浏览器默认会将选中项的提交值设为on,你的表单中所有gender、rscale对应的单选框都没有设置value属性,所以后端Django接收到的参数值就是on,存入数据库自然也是这个值。

解决方法

修改你的HTML表单代码,给每个单选框加上对应的value属性即可:

  1. 性别部分修改为:
Gender:<br>
<input type="radio" name="gender" value="Male" required="required"> Male
<input type="radio" name="gender" value="Female" required="required"> Female 
<input type="radio" name="gender" value="Other" required="required"> Other
  1. 网站评分部分修改为:
On a scale of 1~10, how do you rate this website?<br> 
<input type="radio" name="rscale" value="1" required="required"> 1
<input type="radio" name="rscale" value="2" required="required"> 2
<input type="radio" name="rscale" value="3" required="required"> 3
<input type="radio" name="rscale" value="4" required="required"> 4
<input type="radio" name="rscale" value="5" required="required"> 5
<input type="radio" name="rscale" value="6" required="required"> 6
<input type="radio" name="rscale" value="7" required="required"> 7
<input type="radio" name="rscale" value="8" required="required"> 8
<input type="radio" name="rscale" value="9" required="required"> 9
<input type="radio" name="rscale" value="10" required="required"> 10

修改完成后重新提交表单,数据库中存储的就是你选择的实际值了。

可选优化:你的website_rating字段存储的是1-10的数字,可将models中的字段类型从CharField改为IntegerField,更符合数据存储逻辑。

内容的提问来源于stack exchange,提问作者infinityscrub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:45:04