Django中request.POST.get()方法的返回值是什么?
request.POST.get("a")的返回值分三类情况:
- 若提交的POST请求中不包含
a这个参数,返回None - 若该隐藏输入框没有设置
value属性,也没有通过前端逻辑(JS、页面操作等)赋值就直接提交表单,返回空字符串"" - 若该输入框存在有效值,返回对应值的字符串类型,哪怕
input的type设置为number,Django拿到的POST参数默认都是字符串格式,如果你需要数字类型需要自行用int()转换
当前代码存在的可优化点:
- Django视图函数必须接收
request作为第一个入参,现有的写法def myfunc():是错误的,要改成def myfunc(request): - 如果直接把返回的字符串类型的
a赋值给TransferedItems的item_id字段,若item_id是整数类型字段,存储时会报错,建议调整写法加类型转换和默认值,比如:
a = request.POST.get("a", 0) try: a = int(a) except ValueError: a = 0 obj = TransferedItems(item_id = a)
- 现有逻辑里
else分支是请求方法不是POST的时候返回提交失败,不符合语义,建议调整错误提示逻辑。
内容的提问来源于stack exchange,提问作者Hasnain
相关产品推荐
相关产品推荐

