0

djangoはどのようにフォームデータを自動的にエンコードおよびデコードしますか? たとえば、次のフォームがあります。

 <form method="POST" action="MY_SERVER_URL">
    <p><label for="id_name">Name:</label> <input id="id_name" type="text" name="name"/></p>
    <button type="submit">Save</button>
 </form>

「これは名前の値です」という名前の値を含むこのフォームをサーバーに投稿しようとすると、Chrome、Firefox、または Safari を使用しているときに、ビューの request.POST['name'] で文字列が正しく返されますが、 Internet Explorer では "This+is+name+value" が表示され、適切な値を取得するために urllib.unquote_plus() を実行する必要があります (これは名前の値、つまり!)。

つまり、Internet Explorer からのすべてのフォーム データは、別の形式でデコードまたはエンコードされていないようです。(どれですか?)stackoverflowでこれを広範囲に検索しましたが、役立つものは何も見つかりませんでした。有識者のご意見大歓迎です!

4

1 に答える 1

0

enctypeフォームにプロパティを追加する必要があると思います。IE のデフォルトは application/x-www-form-urlencoded ですが、IE ではわかりません。text/plain の enctype がスペースを + に変換することはわかっています。

試す:

<form action="." method="post" enctype="application/x-www-form-urlencoded">

または使用:multiplart/form-dataフォームがファイル フィールドをサポートする必要がある場合。

于 2013-02-14T18:06:07.003 に答える