【问题标题】:Preserve special characters in QueryDict from Form (Django)从表单(Django)中保留 QueryDict 中的特殊字符
【发布时间】:2014-04-26 08:35:27
【问题描述】:

我的模板有一个简单的表单,它通过 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>

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

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

在 Django 中,我使用:

print( str(request.POST) )

如果我的表单包含“hello%64”,Django 会告诉我它看到了:

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

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

任何意见表示赞赏。

【问题讨论】:

    标签: javascript python django forms post


    【解决方案1】:

    没有什么比发布问题更能让您自己快速找到答案的了。在这里为可能偶然发现此问题的其他人添加。

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

    因此,QueryDict 显示字符正确通过,并且我得到了我需要的“hello%64”。

    干杯。

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 2014-02-10
      • 1970-01-01
      相关资源
      最近更新 更多