Django中views.py用request.POST取Radio Button值总返回on如何解决
问题解决方法
问题根源是你的单选按钮<input type="radio">没有设置value属性,浏览器在提交表单时,对于没有指定value的选中单选按钮,默认会返回"on"作为值,并不会自动读取对应label标签里的文本内容。
修改方案
你只需要给两个单选按钮分别添加对应value属性即可,修改后的HTML代码片段如下:
<div class="radio-btn-div btn-group" role="group" aria-label="Basic radio toggle button group"> <input type="radio" id="btnradio1" class="btn-check" name="btnradio" autocomplete="off" checked value="Foodie"> <label class="btn btn-outline-success" for="btnradio1">Foodie</label> <input type="radio" id="btnradio2" class="btn-check" name="btnradio" autocomplete="off" value="Restaurant"> <label class="btn btn-outline-success" for="btnradio2">Restaurant</label> </div>
额外注意
你现有的views.py代码逻辑不需要修改,request.POST['btnradio']就能直接获取到选中项对应的value值。另外不要直接把明文密码存入数据库,Django自带密码加密能力,建议修改创建用户的代码:
# 替换原来的User.objects.create逻辑 user = User.objects.create(username=username, email=email, userType=userType) user.set_password(password) user.save()
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

