我正在寻找更好的代码方式:
我的代码是,
@login_required
def updateEmInfo(request):
userProfile = request.user.get_profile()
if request.POST.__contains__('userType'):
userType = request.POST['userType']
else:
userType = None
if request.method == 'POST':
~~~~~~~~
如果我的代码为userType = request.POST['userType'],
,那么如果userType
不相等,我会收到错误。
我认为使用__contains__
方法不是一个好主意,是否有更好的方法来编写此代码?
像以下一样简单
userType = request.POST['userType'] ? request.POST['userType'] : None
答案 0 :(得分:3)
您可以使用get
request.POST.get('userType')
get(key [,default])如果key在,则返回key的值 字典,否则默认。如果未给出default,则默认为 无,因此此方法永远不会引发KeyError
答案 1 :(得分:2)
您可以使用:
userType = request.POST.get('userType', None)
这大致相当于:
try:
userType = request.POST['userType']
except KeyError:
userType = None