1

これは私のJavascriptコードです:

expr = "A simple string"
$.ajax({
    type: "GET",
    url: "/ajaxrequest/get_dt_paragraphs?expr=" + expr,
    timeout: 8000,
    success: function(data) { doSomething(); }
});

私のジャンゴビューでは、このメソッドを書きました:

def get_dt_paragraphs(request):
    if request.method == 'GET':
        my_string = request.GET["expr"]
        # print on the console for debugging purposes.
        print my_string
    # Do other stuff

コンソールの出力は [u"A simple string"] なので、パラメーター名が配列を返すことがわかりました。もちろん、request.GET["expr"][0] と書いて文字列を取得することもできますが、文字列ではなくリストを取得する理由と、これを回避してより適切でエレガントに書く方法を知りたいです。コード。

4

1 に答える 1

1

GET および POST オブジェクトは、キー ( docs )ごとに複数の値を処理するように設計された QueryDict クラスです。

正確に1つの値が必要であると確信している場合は、お勧めします

request.GET.get('expr', [])[:1]

「expr」が利用できない場合、これは空の配列にフォールバックしますが、[] のブール値が False であるため、とにかくこれは慣用的な Python である必要があります。

于 2012-12-06T12:24:22.753 に答える