从Form(Django)保留QueryDict中的特殊字符

时间:2014-03-19 20:11:45

标签: javascript python django forms post

我的模板有一个简单的表单,通过XMLHttpRequest返回给Django。

表格:

  <form id="myForm" onsubmit="return false;"  accept-charset="UTF-8" >{% csrf_token %}  
     <p><label for="dev_Ser">Device info:</label>
     <input type="text"  id="dev_Ser"name="devSerial" maxlength="100" /></p>
      <input id="subBut" type="submit" />  
   </form>

来回沟通工作正常,但表单字段需要允许输入%和&amp;等特殊字符。

当我从POST到达Django服务器的POST检查QueryDict时,特殊字符已丢失。

在Django中,我使用:

print( str(request.POST) )

如果我的表格包含&#34;你好%64&#34;,Django告诉我它看到了:

<QueryDict: {u'device': [u'hellod'] }>

我一定错过了什么。在将其发送到我的Django服务器之前,是否需要在javascript中执行某些操作来对该文本输入的内容进行编码?

任何意见都赞赏。

1 个答案:

答案 0 :(得分:0)

没有什么比发贴一个问题让你自己快速发现答案了。在这里添加其他可能偶然发现的人。

当我封装我的表单的文本条目以通过XMLHttpRequest发送时,我可以使用javascript的encodeURIComponent()函数对内容进行编码,从而保留它们以便Django处理。

因此,QueryDict显示角色正确通过,我得到了我的“你好%64”。

干杯。