4

私はコーディングするためのより良い方法を探しています:

私のコードは、

@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 
4

2 に答える 2

3

あなたが使用することができますget

request.POST.get('userType')

get(key[, default]) key が辞書にある場合は key の値を返し、そうでない場合は default を返します。default が指定されていない場合、デフォルトで None に設定されるため、このメソッドは KeyError を発生させません。

.

于 2012-11-09T14:06:03.577 に答える
3

以下を使用できます。

userType = request.POST.get('userType', None)

これは、次とほぼ同等です。

try:
    userType = request.POST['userType']
except KeyError:
    userType = None
于 2012-11-09T14:06:45.833 に答える